Source code for pybpodapi.bpod_modules.bpod_module

from pybpodapi.exceptions.bpod_error import BpodErrorException
from pybpodapi.com.arcom import ArduinoTypes


[docs]class BpodModule(object): def __init__(self, connected=False, module_name='', firmware_version=0, events_names=[], n_serial_events=0, serial_port=None): self.name = module_name self.serial_port = serial_port self.connected = connected self.firmware_version = firmware_version self.event_names = events_names self.n_serial_events = n_serial_events self.relay_active = False self.bpod_modules = None def __str__(self): return "{0} (connected: {1})(firmware: {2})".format(self.name, self.connected, self.firmware_version)
[docs] def load_message(self, msg, msg_id=None): """ Load a message through bpod to the module and associate an ID to it. :param list(int) msg: Message to send :param int msg_id: Id of the message to use """ if msg_id is None: for i in range(255): if not self.bpod_modules.bpod.msg_id_list[i]: msg_id = i+1 break self.bpod_modules.bpod.load_serial_message(self.serial_port, msg_id, msg) return msg_id
def start_module_relay(self): if not self.bpod_modules.relay_is_active: self.bpod_modules.activate_module_relay(self) self.relay_active = True else: raise BpodErrorException('Error: You must disable the active module relay before starting another one.') def stop_module_relay(self): self.bpod_modules.deactivate_module_relay(self) self.relay_active = False def __read(self, size=None, dtype=None): if not self.relay_active: raise BpodErrorException('Error: you must start the module relay with start_moule_relay() before you can read bytes from a module') if size is None: size = self.bpod_modules.bpod.data_available() return self.bpod_modules.module_read(self, size, dtype) def write_char_array(self, message): self.bpod_modules.module_write(self, message, ArduinoTypes.CHAR) def write_uint8_array(self, message): self.bpod_modules.module_write(self, message, ArduinoTypes.UINT8) def write_uint16_array(self, message): self.bpod_modules.module_write(self, message, ArduinoTypes.UINT16) def write_uint32_array(self, message): self.bpod_modules.module_write(self, message, ArduinoTypes.UINT32) def write_float_array(self, message): self.bpod_modules.module_write(self, message, ArduinoTypes.FLOAT) def read_char_array(self, size=None): self.__read(size, ArduinoTypes.CHAR) def read_uint8_array(self, size=None): self.__read(size, ArduinoTypes.UINT8) def read_uint16_array(self, size=None): self.__read(size, ArduinoTypes.UINT16) def read_uint32_array(self, size=None): self.__read(size, ArduinoTypes.UINT32) def read_float_array(self, size=None): self.__read(size, ArduinoTypes.FLOAT)