def last(self, octet): self.frame.append(octet) mb = MessageBuffer(self.frame) mb.service = IMI.L_DATA_IND self.parent.dataLinkLayer.post(mb) self.frame = [] self._done = True self.action = self.first
def ackRervice_Req(self, tpci, source, dest, seqNo): message = MessageBuffer([0] * 7) message.service = IMI.N_DATA_INDIVIDUAL_REQ frame = message.asStandardFrame() frame.tpci = tpci | ((SeqNo & 0x0f) << 2) frame.source = source frame.priority = knx.KNX_OBJ_PRIO_SYSTEM frame.dest = dest self.post(message)
def connection_Req(self, tpci, event, source, dest): #print "TransportLayerConnected: connection_Req: 0x%x" % tpci message = MessageBuffer([0] * 7) message.service = IMI.N_DATA_INDIVIDUAL_REQ frame = message.asStandardFrame() frame.tpci = tpci frame.source = source frame.priority = knx.KNX_OBJ_PRIO_SYSTEM self.stateMachine.connectionAddress = dest self.stateMachine.sourceAddress = source frame.dest = dest self.stateMachine(event) self.post(message)
def connection_Req(self, tpci, event, source, dest): print "TransportLayerConnected: connection_Req: 0x%x" % tpci message = MessageBuffer([0] * 7) message.service = IMI.N_DATA_INDIVIDUAL_REQ frame = message.asStandardFrame() frame.tpci = tpci frame.source = source frame.priority = knx.KNX_OBJ_PRIO_SYSTEM self.stateMachine.connectionAddress = dest self.stateMachine.sourceAddress = source frame.dest = dest # KnxTlc_StateMachine(event); self.stateMachine(event) self.post(message)
def last(self, octet): self.frame.append(octet) mb = MessageBuffer(self.frame) mb.service = IMI.L_DATA_IND if self.frame[1:-1] != self.previousFrame[ 1:-1]: # TODO: check repeat! self.frame[0] # Don't post repeated frames. print "L_DATA_IND:", self.frame self.parent.dataLinkLayer.post(mb) self.previousFrame = self.frame else: print "CTRL:", hex(self.frame[0]) self.frame = [] self._done = True self.action = self.first
def last(self, octet): if octet & 0x7f == 0x0b: self.confirmation = (octet & 0x80) == 0x80 mb = MessageBuffer(self.frame) mb.service = IMI.L_DATA_CON mb.confirmed = self.confirmation self.parent.dataLinkLayer.post(mb) self.parent.dataLinkLayer.release() #if self.confirmation: # sys.exit() self._done = True else: #assert (octet & REPETITION_MASK) == (self.parent.sendBuffer[0] & REPETITION_MASK) if not ((octet & REPETITION_MASK) == (self.parent.sendBuffer[0] & REPETITION_MASK)): print "Uups [first]: '%02x' != '%02x'" % (octet, self.parent.sendBuffer[0], ) self.idx = 1 self.repetitionCounter += 1 self.action = self.consecutive
def last(self, octet): if octet & 0x7f == 0x0b: self.confirmation = (octet & 0x80) == 0x80 mb = MessageBuffer(self.frame) mb.service = IMI.L_DATA_CON mb.confirmed = self.confirmation self.parent.dataLinkLayer.post(mb) self.parent.dataLinkLayer.release() #if self.confirmation: # sys.exit() self._done = True else: #assert (octet & REPETITION_MASK) == (self.parent.sendBuffer[0] & REPETITION_MASK) if not ((octet & REPETITION_MASK) == (self.parent.sendBuffer[0] & REPETITION_MASK)): print "Uups [first]: '{0:02x}' != '{1:02x}'".format( octet, self.parent.sendBuffer[0]) self.idx = 1 self.repetitionCounter += 1 self.action = self.consecutive