def send(self, message): """ Converts and sends message to erg; receives, converts, and returns ergs response """ #Checks that enough time has passed since the last message was sent, #if not program sleeps till time has passed now = datetime.datetime.now() delta = now - self.__lastsend deltaraw = delta.seconds + delta.microseconds/1000000. if deltaraw < MIN_FRAME_GAP: time.sleep(MIN_FRAME_GAP - deltaraw) #convert message to byte array csafe = csafe_cmd.write(message) #sends message to erg and records length of message length = self.erg.write(self.outEndpoint, csafe, timeout=2000) #records time when message was sent self.__lastsend = datetime.datetime.now() response = [] while not response: try: #recieves byte array from erg transmission = self.erg.read(self.inEndpoint, length, timeout=2000) response = csafe_cmd.read(transmission) except Exception as e: raise e #Replace with error or let error trigger? #No message was recieved back from erg # return [] #convers byte array to response dictionary return response