示例#1
0
    def connect_myo(self):

        ## stop everything from before
        self.end_scan()
        #self.disconnect(0)
        #self.disconnect(1)
        #self.disconnect(2)

        ## start scanning
        print('scanning...')
        self.discover()

        while True:
            packet = self.recv_packet(payme=True)
            payload = packet[-1]
            #print('scan response:', packet)
            print('scanning...')
            if payload.endswith(
                    b'\x06\x42\x48\x12\x4A\x7F\x2C\x48\x47\xB9\xDE\x04\xA9\x01\x00\x06\xD5'
            ):
                addr = list(multiord(payload[2:8]))
                break
        self.end_scan()
        ## connect and wait for status event
        conn_pkt = self.connect(addr)
        self.conn = multiord(conn_pkt[-1])[-1]
        self.wait_event(3, 0)
        ## get firmware version
        fw = self.read_attr(0x17)
        _, _, _, _, v0, v1, v2, v3 = unpack('BHBBHHHH', fw[-1])
        print('Connected!')
        print('Firmware version: %d.%d.%d.%d' % (v0, v1, v2, v3))
示例#2
0
 def fromBytes(klass, addr):
     """
         Converts a standard 16-byte IPv6 address to a human-readable string.
     """
     if len(addr) != klass.WIDTH:
         raise ValueError, "IPv6 address must have %s bytes: %s" % (
             klass.WIDTH, repr(addr))
     octets = []
     for i in range(8):
         octets.append(hex(utils.multiord(addr[2 * i:2 * i + 2]))[2:])
     start, finish = utils.findLongestSubsequence(octets, "0")
     if finish:
         return IP6Address(":".join(octets[0:start]) + "::" +
                           ":".join(octets[finish + 1:]))
     else:
         return IP6Address(":".join(octets))
示例#3
0
 def fromBytes(klass, addr):
     """
         Converts a standard 16-byte IPv6 address to a human-readable string.
     """
     if len(addr) != klass.WIDTH:
         raise ValueError, "IPv6 address must have %s bytes: %s"%(klass.WIDTH, repr(addr))
     octets = []
     for i in range(8):
         octets.append(hex(utils.multiord(addr[2*i:2*i+2]))[2:])
     start, finish = utils.findLongestSubsequence(octets, "0")
     if finish:
         return IP6Address(
             ":".join(octets[0:start]) + "::" + ":".join(octets[finish+1:])
         )
     else:
         return IP6Address(":".join(octets))
示例#4
0
 def integer(self):
     return utils.multiord(self.bytes)
示例#5
0
 def integer(self):
     return utils.multiord(self.bytes)