示例#1
0
文件: phyTpuart.py 项目: lumovan/knx
 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
示例#2
0
文件: tlc.py 项目: lumovan/knx
 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)
示例#3
0
 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)
示例#4
0
 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)
示例#5
0
文件: tlc.py 项目: lumovan/knx
 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)
示例#6
0
 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
示例#7
0
文件: phyTpuart.py 项目: lumovan/knx
    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
示例#8
0
    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