Tdtpy.

módulo para se comunicar com o hardware do sistema TDT
Baixe Agora

Tdtpy. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL v3
  • Preço:
  • FREE
  • Nome do editor:
  • Brad Buran
  • Site do editor:
  • http://bradburan.com/

Tdtpy. Tag


Tdtpy. Descrição

Tucker Davis Technologies (TDT) fornece um componente ActiveX para configurar seu hardware em tempo real (por exemplo, o RP2.1, RX6, RZ6, etc.) e manuseio de E / S. O TDTPY é um invólucro ao redor do componente ActiveX que facilita o desenvolvimento de scripts e programas Python (por exemplo, neurobehavior) que usam o hardware do TDT. Um objetivo deste módulo foi fornecer uma camada de abstração que nos permitiria migrar nosso código para uma plataforma de hardware alternativa no futuro com relativamente pouco esforço.developer comentsi incentivar os de vocês que usam o hardware do TDT para dar a este módulo. O código é estável, testado por via externa e atualmente em execução em vários recursos de laboratórios. Recursos simples - Conversão de tipo simples - ao configurar variáveis no microcódigo, certas unidades precisam ser convertidas com base na frequência do relógio do processador em tempo real. O invólucro automatizará este processo de conversão .- I / O sem bloqueio - com algumas linhas de código Python, você pode facilmente iniciar a comunicação de E / S e Hardware em um subprocesso para liberar seu programa principal para outras tarefas (por exemplo, visualização dos dados recebidos ou controlar as variáveis de estímulo). Isso é particularmente útil para os usuários que estão baixando grandes (por exemplo, 64 ou mais canais de dados de neurofisiologia) quantidades de dados do hardware.- Leitas e gravações contínuas simples - várias classes facilitam a aquisição de dados de buffers de hardware, além de escrever continuamente Dados para buffers de hardware que consomem continuamente os dados. O estado atual do buffer de hardware é rastreado para garantir que não haja transbordamentos ou underflows de buffer .- escala automatizada e descompressão de dados - se você geralmente comprimem ou dizimar uma forma de onda antes de armazená-lo nos buffers de hardware, o wrapper inspecionará o microcódigo e automaticamente descompactar os dados e registrar a frequência de amostragem apropriada ao fazer o download do buffer de hardware. Essa funcionalidade automatizada, no entanto, requer certas convenções de codificação (consulte a documentação) .- Verificação de erros - Alguns métodos no driver do fabricante falharão silenciosamente (por exemplo, se você tentar acessar uma variável inexistente no microcódigo ou tentar gravar mais dados do que o Buffer de hardware pode segurar). Quando o microcódigo é carregado pela primeira vez para o processador em tempo real, o TDTPY inspecionará o microcódigo e armazenará algumas informações sobre as variáveis e buffers disponíveis. Esta informação será usada para validar todas as operações antes de passá-las para o componente ActiveX do fabricante para o manuseio. Se uma operação inválida for tentada, o erro apropriado será aumentado. Quando o componente ActiveX retorna um erro (através de um valor de retorno de estilo C), o TDTPY converte-o em um formulário mais pythônico, levantando uma exceção. Um breve exemplo de como você usaria o wrapper em seu código: da TDT Import DSPCirCuitFrom Numpy Importar Random # Carregue o microcódigo compilado para o processadorCirCuit RZ5 ('componentes / fisiologia.rcx', 'rz5') # inicialize os buffers.raw_data_buffer = circuito.get_buffer ('RAW_DATA', 'R', Canais = 16) FALANWER_BUFFER = circuito.get_buffer ('alto-falante', "W ') circuito.start () # converte 0,5 seg ao número de amostras dadas a amostragem de hardware FrequencyCirCuit.cset_tag (' Trial_Duration ', 0.5,' S ',' N ') enquanto TRUE : # Adquira todos os novos dados spooled no buffer de hardware dados = RAW_DATA_Buffer.read () Processo (dados) # Descubra quanto espaço foi consumido e agora está disponível ruído = random.normal (tamanho = alto-falante ()) # Escreva alguns novos dados para esses slots Speaker.Write (ruído) O lançamento da aquisição de dados em um segundo processo é tão simples quanto o Substitu ting dspprocess para dspcircuit.from tdt importar dspprocesscircuit = dspprocess ('componentes / fisiologia.rcx', 'RZ5') RAW_DATA_BUFFER = circuito.get_buffer ('RAW_DATA', 'R', canais = 16) Falante-Buffer = circuter.get_buffer ('falante ',' W ') Circuito.Start () no exemplo acima, quando o circuito.start () é chamado, o processo filho é lançado, configura o processador e inicia continuamente pesquisar os buffers de hardware em um intervalo regular. Todos os novos dados são salvos em um espaço de memória compartilhada. O RAW_DATA_BUFFER monitora esse espaço de memória compartilhada. Cada vez RAW_DATA_Buffer.read () é chamado, os verificações do buffer para ver se novos dados foram gravados no espaço de memória compartilhada pelo processo filho e retorna uma cópia desta página inicial do Data.Product


Tdtpy. Software Relacionado

Openenciamento

Uma simples biblioteca Python para obter informações de identificação de identificação de chamadas usando a API Openencnam ...

69

Download