Tdtpy

Module voor communicatie met TDT's System 3-hardware
Download nu

Tdtpy Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • GPL v3
  • Prijs:
  • FREE
  • Naam uitgever:
  • Brad Buran
  • Uitgever website:
  • http://bradburan.com/

Tdtpy Tags


Tdtpy Beschrijving

TUCKER DAVIS TECHNOLOGIES (TDT) biedt een ActiveX-component voor het configureren van hun real-time hardware (bijvoorbeeld de RP2.1, RX6, RZ6, enz.) En het hanteren van I / O. TDTPY is een wikkel rond de ActiveX-component die de ontwikkeling van Python-scripts en -programma's (b.v. neurobehavior) vergemakkelijkt die de hardware van TDT gebruiken. Eén doel van deze module was om een abstractielaag te verschaffen die ons in staat zou stellen onze code in te migreren naar een alternatief hardwareplatform in de toekomst met relatief weinig moeite. Andeveloper Commentsi moedigt die van u aan die de hardware van TDT gebruiken om deze module te proberen. De code is stabiel, doorgaans getest en wordt momenteel uitgevoerd in verschillende laboratoria.Supported Functies- Simple Type Conversion - Bij het configureren van variabelen in de microcode moeten bepaalde eenheden worden geconverteerd op basis van de klokfrequentie van de real-time processor. De Wrapper zal dit conversieproces automatiseren. - Niet-blokkeren I / O - Met een paar regels Python-code kunt u eenvoudig de I / O- en Hardware-communicatie in een subproces starten om uw hoofdprogramma vrij te maken voor andere taken (bijv. Visualisatie van de inkomende gegevens of het besturen van de stimulusvariabelen). Dit is met name handig voor gebruikers die groot zijn (bijv. 64 of meer kanalen van neurofysiology-gegevens) Gegevens van de hardware .- Eenvoudige continue leest en schrijft - Verschillende klassen vergemakkelijken het verkrijgen van gegevens van hardwarebuffers die voortdurend gegevens en het schrijven zijn Gegevens aan hardwarebuffers die continu de gegevens consumeren. De huidige toestand van de hardwarebuffer wordt bijgehouden om ervoor te zorgen dat er geen bufferoverloop of underflows zijn.- (geautomatiseerde schaal en decompressie van gegevens - als u een golfvorm gewoonlijk comprimeert of een golfvorm neemt voordat u het opslaat in de hardwarebuffers, zal de verpakking de microcode inspecteren en de gegevens automatisch decompries en neem de juiste bemonsteringsfrequentie op bij het downloaden van de hardwarebuffer. Deze geautomatiseerde functionaliteit vereist echter bepaalde coderingsconventies (zie de documentatie) .- Foutcontrole - Sommige methoden op het stuurprogramma van de fabrikant zullen stil mislukken (bijvoorbeeld als u probeert toegang te krijgen tot een niet-bestaande variabele in de microcode of om meer gegevens te proberen te schrijven dan de Hardware-buffer kan vasthouden). Wanneer de microcode voor het eerst wordt geladen aan de real-time processor, inspecteert TDTPY de microcode en bewaart u wat informatie over de beschikbare variabelen en buffers. Deze informatie zal worden gebruikt om alle bewerkingen te valideren voordat ze deze doorgeven aan de ActiveX-component van de fabrikant voor het hanteren. Als een ongeldige bewerking wordt geprobeerd, wordt de juiste fout opgetild. Wanneer de ActiveX-component een fout retourneert (via een C-Style-retourwaarde), converteert TDTPY het naar een meer Pythonic-vorm door een uitzondering te verhogen. Een kort voorbeeld van hoe u de wrapper in uw code zou gebruiken: van TDT Import DSPCIRCUITFROM NUMPY Importeren Willekeurig # Laad de gecompileerde microcode naar de RZ5-processorcircuit = DSPCIRCUIT ('Componenten / Physiology.rcx', 'RZ5') # Initialiseer de buffers.raw_data_buffer = circuit.get_buffer ('Raw_Data', 'R', kanalen = 16) Speaker_Buffer = Circuit.get_buffer ('Luidspreker', 'W') Circuit.Start () # Converteert 0,5 sec op het aantal monsters gezien de hardware-sampling frequentiecircuit.cset_tag ('trial_duration', 0,5, ',' n ') : # Verwerven alle nieuwe gegevens in de hardware-buffergegevens = Raw_Data_Buffer.read () Proces (gegevens) # Ontdek hoeveel ruimte is geconsumeerd en nu beschikbaar is voor willekeurig. Normaal (grootte = luidspreker.Asable ()) # Schrijf nieuwe gegevens naar deze slots luidspreker.write (ruis) die de gegevensverwerving in een tweede proces lanceert, is zo eenvoudig als substitu TING DSPPROCESS VOOR DSPCIRCUIT.FROM TDT Import DSPPROCESSCIRCUIT = DSPPROCESS ('Componenten / Physiology.rcx', 'RZ5') Raw_Data_Buffer = Circuit.get_Buffer ('Raw_Data', 'R', Kanalen = 16) Speaker_Buffer = Circuit.get_Buffer ('Luidspreker) ',' W ') Circuit.Start () In het bovenstaande voorbeeld, wanneer Circuit.start () wordt genoemd, configureert het kindproces, configureert de processor de processor en begint de hardwarebuffers op een regelmatige interval voortdurend voort te zetten. Alle nieuwe gegevens worden opgeslagen in een gedeelde geheugenruimte. De Raw_Data_Buffer controleert deze gedeelde geheugenruimte. Elke keer Raw_Data_Buffer.READ () wordt genoemd, controleert de buffer om te zien of er nieuwe gegevens zijn geschreven naar de gedeelde geheugenruimte door het kindproces en een kopie van deze gegevens te retourneren. PRODUCTIES HOME


Tdtpy Gerelateerde software

Opencnam

Een eenvoudige Python-bibliotheek voor het ontvangen van beller-ID-naamgegevens met behulp van de OpenCnam API ...

69

Downloaden