from .IdiBusSerialLine import * from .IdiBusParse import IdiBusMMESParser, IdiBusMMESGParser SelfAddress = 254 #Emulates slave module to communicate with master class IdiBusSlave(): def __init__(self,address,line:IdiBusSerialLine): self.address = address self.line = line def await_message(self, retries): addr = 0 for i in range(0,retries): msg = self.line.readData(self.line.maxPacketSize) # No response if len(msg) < 3: continue parser = IdiBusMMESParser(msg) # Corrupted if parser.validate() == -1: continue # This one is not for this Slave if parser.getAddress() != self.address: continue # Got a correct message if parser.getMesType() == 1: parser = IdiBusMMESGParser(msg) return parser return None