コード例 #1
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoInitDevice(self, role = Role.central):
     self.role = role
     print("COMMAND: Initializing device as %s role" % self.role)
     if self.role == Role.central:
         print(utils.printOutput(self.ble_builder.send("fe00")))
     elif self.role == Role.periphral:
         #init device as peripheral mode
         print(utils.printOutput(self.ble_builder.send("fe00", profile_role = "\x04")))  
コード例 #2
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
    def DoConnect(self, devAddr):
        print("COMMAND: Starting establishing connection to %s" % devAddr)
        print(utils.printOutput(self.ble_builder.send("fe05")))
        time.sleep(0.1)
#         print(utils.printOutput(self.ble_builder.send("fe0a", mode="\xFE\xFF")))
        time.sleep(0.1)
        print("COMMAND: GAP_EstablishLinkRequest")
        print(utils.printOutput(self.ble_builder.send("fe09", peer_addr=devAddr, addr_type_peer="\x03")))
コード例 #3
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoInitDevice(self, role=Role.central):
     self.role = role
     print("COMMAND: Initializing device as %s role" % self.role)
     if self.role == Role.central:
         print(utils.printOutput(self.ble_builder.send("fe00")))
     elif self.role == Role.periphral:
         #init device as peripheral mode
         print(
             utils.printOutput(
                 self.ble_builder.send("fe00", profile_role="\x04")))
コード例 #4
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoConnect(self, devAddr):
     print("COMMAND: Starting establishing connection to %s" % devAddr)
     print(utils.printOutput(self.ble_builder.send("fe05")))
     time.sleep(0.1)
     #         print(utils.printOutput(self.ble_builder.send("fe0a", mode="\xFE\xFF")))
     time.sleep(0.1)
     print("COMMAND: GAP_EstablishLinkRequest")
     print(
         utils.printOutput(
             self.ble_builder.send("fe09",
                                   peer_addr=devAddr,
                                   addr_type_peer="\x03")))
コード例 #5
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def _DoExchangeMTURsp(self, conn_handle, rxServerMTU):
     print("COMMAND: ATT_ExchangeMTURsp")
     print(
         utils.printOutput(
             self.ble_builder.send("fd03",
                                   conn_handle=conn_handle,
                                   server_rx_mtu=rxServerMTU)))
コード例 #6
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoFindPrimaryServiceByUUID(self, serviceUUID, conn_handle):
     print("COMMAND: GATT_DiscPrimaryServiceByUUID")
     print(
         utils.printOutput(
             self.ble_builder.send("fd86",
                                   value=serviceUUID,
                                   conn_handle=conn_handle[0])))
     pass
コード例 #7
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoSendNotification(self, conn_handle, handle, value):
     print("COMMAND: ATT_HandleValueNotification")
     print(
         utils.printOutput(
             self.ble_builder.send("fd1b",
                                   conn_handle=conn_handle,
                                   handle=handle,
                                   value=value)))
コード例 #8
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoEnableNotification(self, conf_handle, conn_handle):
     print("COMMAND: GATT_WriteCharValue")
     value = "\x01\x00"
     print(
         utils.printOutput(
             self.ble_builder.send("fd92",
                                   handle=conf_handle,
                                   value=value,
                                   conn_handle=conn_handle)))
コード例 #9
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoUpdateAdvertisingData(self, data, ad_type=adType.ADVERTISEMENT_DATA):
     print("COMMAND: Set advertising data as %s " % data)
     data_length = utils.getByteDataLengh(data)
     print(
         utils.printOutput(
             self.ble_builder.send("fe07",
                                   advert_data=data,
                                   data_length=data_length,
                                   ad_type=ad_type)))
コード例 #10
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoAddService(self,
                  service_type=declarations.GATTPrimaryService,
                  number=1):
     print("COMMAND: GATT_AddService")
     print(
         utils.printOutput(
             self.ble_builder.send("fdfc",
                                   uuid=service_type,
                                   numAttrs=number)))
コード例 #11
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoAddAttribute(self,
                    uuid,
                    permissions=attrPermission.GATT_PERMIT_READ_AND_WRITE):
     print("COMMAND: GATT_AddAttribute")
     print(
         utils.printOutput(
             self.ble_builder.send("fdfe",
                                   uuid=uuid,
                                   permissions=permissions)))
コード例 #12
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoDiscCharsByUUID(self, charUUID, start_handle, end_handle,
                       conn_handle):
     print("COMMAND: GATT_DiscCharsByUUID")
     print(
         utils.printOutput(
             self.ble_builder.send("fd88",
                                   conn_handle=conn_handle[0],
                                   start_handle=start_handle[0],
                                   end_handle=end_handle[0],
                                   type=charUUID)))
コード例 #13
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoMakeDiscoverable(self,
                        event_type=eventType.NON_CONN_UNDIRECT_AD,
                        init_addr_type=initiatorAddrType.PrivateResolve,
                        filter_policy=filterPolicy.All):
     print("COMMAND: GAP_MakeDeviceDiscoverable")
     print(
         utils.printOutput(
             self.ble_builder.send("fe06",
                                   event_type=event_type,
                                   init_addr_type=init_addr_type,
                                   filter_policy=filter_policy)))
コード例 #14
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoFindInfo(self,
                conn_handle='\xfe\xff',
                start_handle='\x01\x00',
                end_handle='\xff\xff'):
     print("COMMAND: ATT_FindInfoReq")
     print(
         utils.printOutput(
             self.ble_builder.send("fd04",
                                   conn_handle=conn_handle,
                                   start_handle=start_handle,
                                   end_handle=end_handle)))
コード例 #15
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoUpdateAdvertisingData(self, data, ad_type = adType.ADVERTISEMENT_DATA):
     print("COMMAND: Set advertising data as %s " % data)
     data_length = utils.getByteDataLengh(data)
     print(utils.printOutput(self.ble_builder.send("fe07", advert_data = data, data_length = data_length, ad_type= ad_type)))        
コード例 #16
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoMakeDiscoverable(self, event_type = eventType.NON_CONN_UNDIRECT_AD, init_addr_type = initiatorAddrType.PrivateResolve, filter_policy = filterPolicy.All):
     print("COMMAND: GAP_MakeDeviceDiscoverable")
     print(utils.printOutput(self.ble_builder.send("fe06", event_type = event_type, init_addr_type = init_addr_type, filter_policy = filter_policy)))
コード例 #17
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoSendNotification(self, conn_handle, handle, value):
     print("COMMAND: ATT_HandleValueNotification")
     print(utils.printOutput(self.ble_builder.send("fd1b", conn_handle = conn_handle, handle = handle, value = value)))
コード例 #18
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoCancelDiscover(self):
     print("COMMAND: GAP_DeviceDiscoveryRequest")
     print(utils.printOutput(self.ble_builder.send("fe05")))
コード例 #19
0
 def _sendATTWriteRsp(conn_handle):
     print("COMMAND: ATT_WriteRsp")
     print(utils.printOutput(self.ble_builder.send("fd13", conn_handle = conn_handle)))
コード例 #20
0
 def ATTErrorRspHandler(self, conn_handle, req_opcode, handle, error_code):
     print("COMMAND: ATT_ErrorRsp")
     handle = handle
     print(utils.printOutput(self.ble_builder.send("fd01", conn_handle = conn_handle, req_opcode = req_opcode, handle = handle, error_code = error_code)))           
コード例 #21
0
 def _sendATTGrpTypeRsp(conn_handle, data, data_length):
     #         data = "\x14\x00\x17\x00\x9d\x28\xd9\x02\x6e\x8a\x5a\xa8\xe7\x41\x41\x38\xa0\xf2\x83\xdb"
     print(utils.printOutput(self.ble_builder.send("fd11", conn_handle = conn_handle, data_length = data_length, value = data)))
コード例 #22
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoDelService(self, handle):
     print("COMMAND: GATT_DelService")
     print(utils.printOutput((self.ble_builder.send("fdfd", handle))))
コード例 #23
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoReset(self, resetType):
     print("COMMAND: UTIL_Reset")
     print(
         utils.printOutput(
             self.ble_builder.send("fe80", resetType=resetType)))
     time.sleep(1)
コード例 #24
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoDisconnect(self, conn_handle):
     print("COMMAND: GAP_TerminateLinkRequest")
     print(utils.printOutput(self.ble_builder.send("fe0a", conn_handle = conn_handle[0])))
     time.sleep(1)
コード例 #25
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoReset(self, resetType):
     print("COMMAND: UTIL_Reset")
     print(utils.printOutput(self.ble_builder.send("fe80", resetType = resetType)))
     time.sleep(1)
コード例 #26
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoAddAttribute(self, uuid, permissions = attrPermission.GATT_PERMIT_READ_AND_WRITE):
     print("COMMAND: GATT_AddAttribute")
     print(utils.printOutput(self.ble_builder.send("fdfe", uuid = uuid, permissions = permissions)))
コード例 #27
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoCancelDiscover(self):
     print("COMMAND: GAP_DeviceDiscoveryRequest")        
     print(utils.printOutput(self.ble_builder.send("fe05")))        
コード例 #28
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
    def DoDiscover(self):
        #start a device discovery scan
        print("COMMAND: Starting device scan")
#        print(utils.printOutput(self.ble_builder.send("fe05")))
#        time.sleep(0.1)
        print(utils.printOutput(self.ble_builder.send("fe04", mode="\x03")))
コード例 #29
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoEndDiscoverable(self):
     print("COMMAND: GAPT_EndDiscoverable")
     print(utils.printOutput(self.ble_builder.send("fe08")))
コード例 #30
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoAddService(self, service_type = declarations.GATTPrimaryService, number = 1):
     print("COMMAND: GATT_AddService")
     print(utils.printOutput(self.ble_builder.send("fdfc", uuid = service_type, numAttrs = number)))
コード例 #31
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoDelService(self, handle):
     print("COMMAND: GATT_DelService")
     print(utils.printOutput((self.ble_builder.send("fdfd", handle))))
コード例 #32
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoEndDiscoverable(self):
     print("COMMAND: GAPT_EndDiscoverable")
     print(utils.printOutput(self.ble_builder.send("fe08")))
コード例 #33
0
 def _sendATTReadBlobRsp(conn_handle, value):
     print("COMMAND: ATT_ReadBlobRsp")
     print(utils.printOutput(self.ble_builder.send("fd0d", conn_handle = conn_handle, value = value)))
コード例 #34
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def _DoCancelPendingConnectionRequest(self):
     print("COMMAND: Cancel pending connection request")
     print(utils.printOutput(self.ble_builder.send("fe0a", conn_handle="\xFE\xFF")))
コード例 #35
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoDiscover(self):
     #start a device discovery scan
     print("COMMAND: Starting device scan")
     #        print(utils.printOutput(self.ble_builder.send("fe05")))
     #        time.sleep(0.1)
     print(utils.printOutput(self.ble_builder.send("fe04", mode="\x03")))
コード例 #36
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
class ble:
    def __init__(self, port='COM3'):

        self.port = port

        #init serial port
        self._init_serial_port()
        #init ble builder
        self.ble_builder = BLEBuilder(self.serial_port)
        #init ble parser
        self.ble_parser = BLEParser(self.serial_port,
                                    callback=self._display_packet)
        #gatt server configuration
        self.gatt_server = BLEGattHelper(self.ble_builder)

        #init device
        time.sleep(1)
#         #get an operating parameter value
#         print("COMMAND: Getting operating parameter value")
#         print(print_output(self.ble_builder.send("fe31", param_id="\x15")))

    def _init_serial_port(self):
        print "Port is set to %s" % self.port
        self.serial_port = serial.Serial()
        self.serial_port.port = self.port
        self.serial_port.baudrate = 115200
        if self.serial_port.isOpen():
            self.serial_port.close()
        self.serial_port.open()

    def DoInitDevice(self, role=Role.central):
        self.role = role
        print("COMMAND: Initializing device as %s role" % self.role)
        if self.role == Role.central:
            print(utils.printOutput(self.ble_builder.send("fe00")))
        elif self.role == Role.periphral:
            #init device as peripheral mode
            print(
                utils.printOutput(
                    self.ble_builder.send("fe00", profile_role="\x04")))

    def DoUpdateAdvertisingData(self, data, ad_type=adType.ADVERTISEMENT_DATA):
        print("COMMAND: Set advertising data as %s " % data)
        data_length = utils.getByteDataLengh(data)
        print(
            utils.printOutput(
                self.ble_builder.send("fe07",
                                      advert_data=data,
                                      data_length=data_length,
                                      ad_type=ad_type)))

    def DoMakeDiscoverable(self,
                           event_type=eventType.NON_CONN_UNDIRECT_AD,
                           init_addr_type=initiatorAddrType.PrivateResolve,
                           filter_policy=filterPolicy.All):
        print("COMMAND: GAP_MakeDeviceDiscoverable")
        print(
            utils.printOutput(
                self.ble_builder.send("fe06",
                                      event_type=event_type,
                                      init_addr_type=init_addr_type,
                                      filter_policy=filter_policy)))

    def DoEndDiscoverable(self):
        print("COMMAND: GAPT_EndDiscoverable")
        print(utils.printOutput(self.ble_builder.send("fe08")))

    def DoAddService(self,
                     service_type=declarations.GATTPrimaryService,
                     number=1):
        print("COMMAND: GATT_AddService")
        print(
            utils.printOutput(
                self.ble_builder.send("fdfc",
                                      uuid=service_type,
                                      numAttrs=number)))

    def DoDelService(self, handle):
        print("COMMAND: GATT_DelService")
        print(utils.printOutput((self.ble_builder.send("fdfd", handle))))

    def DoAddAttribute(self,
                       uuid,
                       permissions=attrPermission.GATT_PERMIT_READ_AND_WRITE):
        print("COMMAND: GATT_AddAttribute")
        print(
            utils.printOutput(
                self.ble_builder.send("fdfe",
                                      uuid=uuid,
                                      permissions=permissions)))

    def DoFindInfo(self,
                   conn_handle='\xfe\xff',
                   start_handle='\x01\x00',
                   end_handle='\xff\xff'):
        print("COMMAND: ATT_FindInfoReq")
        print(
            utils.printOutput(
                self.ble_builder.send("fd04",
                                      conn_handle=conn_handle,
                                      start_handle=start_handle,
                                      end_handle=end_handle)))

    def DoSendNotification(self, conn_handle, handle, value):
        print("COMMAND: ATT_HandleValueNotification")
        print(
            utils.printOutput(
                self.ble_builder.send("fd1b",
                                      conn_handle=conn_handle,
                                      handle=handle,
                                      value=value)))

    def stop(self):
        self.ble_parser.stop()

#     def DoHCIReset(self):
#         print("COMMAND: HCI reset")
#         print(utils.printOutput(self.ble_builder.send("0c03")))

    def DoDiscover(self):
        #start a device discovery scan
        print("COMMAND: Starting device scan")
        #        print(utils.printOutput(self.ble_builder.send("fe05")))
        #        time.sleep(0.1)
        print(utils.printOutput(self.ble_builder.send("fe04", mode="\x03")))

    def DoCancelDiscover(self):
        print("COMMAND: GAP_DeviceDiscoveryRequest")
        print(utils.printOutput(self.ble_builder.send("fe05")))

    def DoConnect(self, devAddr):
        print("COMMAND: Starting establishing connection to %s" % devAddr)
        print(utils.printOutput(self.ble_builder.send("fe05")))
        time.sleep(0.1)
        #         print(utils.printOutput(self.ble_builder.send("fe0a", mode="\xFE\xFF")))
        time.sleep(0.1)
        print("COMMAND: GAP_EstablishLinkRequest")
        print(
            utils.printOutput(
                self.ble_builder.send("fe09",
                                      peer_addr=devAddr,
                                      addr_type_peer="\x03")))

    def DoReset(self, resetType):
        print("COMMAND: UTIL_Reset")
        print(
            utils.printOutput(
                self.ble_builder.send("fe80", resetType=resetType)))
        time.sleep(1)

    def DoDisconnect(self, conn_handle):
        print("COMMAND: GAP_TerminateLinkRequest")
        print(
            utils.printOutput(
                self.ble_builder.send("fe0a", conn_handle=conn_handle[0])))
        time.sleep(1)

    def DoFindPrimaryServices(self):
        pass

    def DoFindPrimaryServiceByUUID(self, serviceUUID, conn_handle):
        print("COMMAND: GATT_DiscPrimaryServiceByUUID")
        print(
            utils.printOutput(
                self.ble_builder.send("fd86",
                                      value=serviceUUID,
                                      conn_handle=conn_handle[0])))
        pass

    def DoDiscCharsByUUID(self, charUUID, start_handle, end_handle,
                          conn_handle):
        print("COMMAND: GATT_DiscCharsByUUID")
        print(
            utils.printOutput(
                self.ble_builder.send("fd88",
                                      conn_handle=conn_handle[0],
                                      start_handle=start_handle[0],
                                      end_handle=end_handle[0],
                                      type=charUUID)))

    def DoEnableNotification(self, conf_handle, conn_handle):
        print("COMMAND: GATT_WriteCharValue")
        value = "\x01\x00"
        print(
            utils.printOutput(
                self.ble_builder.send("fd92",
                                      handle=conf_handle,
                                      value=value,
                                      conn_handle=conn_handle)))

    def DoReadUsingCharUUID(self, charUUID):
        print("COMMAND: Starting establishing connection")
        print(
            utils.printOutput(self.ble_builder.send("fdb4",
                                                    read_type=charUUID)))

    def register_callback(self, command=None):
        print "register callback"
        #        self._callback = command
        setattr(self, command.func_name, command)

    def _DoExchangeMTURsp(self, conn_handle, rxServerMTU):
        print("COMMAND: ATT_ExchangeMTURsp")
        print(
            utils.printOutput(
                self.ble_builder.send("fd03",
                                      conn_handle=conn_handle,
                                      server_rx_mtu=rxServerMTU)))

    def _DoCancelPendingConnectionRequest(self):
        print("COMMAND: Cancel pending connection request")
        print(
            utils.printOutput(
                self.ble_builder.send("fe0a", conn_handle="\xFE\xFF")))

    def _display_packet(self, (packet, dictionary)):
        print("EVENT: Response received from the device")
        print(utils.printOutput((packet, dictionary)))
        event = dictionary['event'][1]
        status = dictionary['status'][1]
        #         op_code = dictionary['op_code'][1]
        if event == hci_event.GAP_DeviceInformation:
            if hasattr(self, "DidDiscoverSuccess"):
                Data = dictionary['data_field']
                RSSI = int(dictionary['rssi'][1], 16)
                Addr = dictionary['addr']
                AddrType = dictionary['addr_type']
                EventType = dictionary['event_type']
                func = getattr(self, "DidDiscoverSuccess")
                func(Addr, RSSI, Data, AddrType, EventType)
        if event == hci_event.GAP_LinkEstablished:
            if hasattr(self, "DidConnectSuccess"):
                Addr = dictionary['dev_addr']
                ConnHandle = dictionary['conn_handle']
                func = getattr(self, "DidConnectSuccess")
                func(Addr, ConnHandle)

        #resp handler, mainly used in central mode
        if event == hci_event.ATT_ErrorRsp:
            print "Error found!"

        if event == hci_event.ATT_FindByTypeValueRsp:
            if status == "00" and hasattr(
                    self, "DidDiscPrimaryServiceByUUIDSuccess"):
                start_handle = dictionary['start_handle']
                end_handle = dictionary['end_handle']
                ConnHandle = dictionary['conn_handle']
                time.sleep(0.5)
                func = getattr(self, "DidDiscPrimaryServiceByUUIDSuccess")
                func(start_handle, end_handle, ConnHandle)

        if event == hci_event.ATT_ReadByTypeRsp:
            if dictionary.has_key('handle') and dictionary.has_key('value'):
                ConnHandle = dictionary['conn_handle']
                handle = dictionary['handle'][0]  #dictionary['results']
                data = dictionary['value'][0]
                if len(data) > 3 and utils.hexMinusInHex(handle,
                                                         -1) == data[1:3]:
                    #It's DiscUsingCharUUID event
                    charType = data[0]
                    charHandle = data[1:3]
                    confHandle = None
                    value = data[3::]
                    if charType.encode('hex')[0] == "1":  #type is notify
                        confHandle = utils.hexMinusInHex(handle, -2)
                    if hasattr(self, "DidDiscCharByUUIDSuccess"):
                        time.sleep(0.5)
                        func = getattr(self, "DidDiscCharByUUIDSuccess")
                        func(charType.encode('hex'), charHandle, confHandle,
                             value, ConnHandle[0])
                else:
                    #It's ReadUsingCharUUID event
                    if hasattr(self, "DidReadCharByUUIDSuccess"):
                        func = getattr(self, "DidReadCharByUUIDSuccess")
                        func(handle, data, ConnHandle)
            else:
                pass

        if event == hci_event.ATT_ReadByGrpTypeRsp:
            pass

        if event == hci_event.ATT_HandleValueNotification:
            conn_handle = dictionary['conn_handle']
            handle = dictionary['handle']
            value = utils.hexToAscii(dictionary['values'][0])
            if hasattr(self, "DidReciNotification"):
                func = getattr(self, "DidReciNotification")
                func(value, handle, conn_handle)
        if event == hci_event.ATT_HandleValueConfirmation:
            pass

        #Request handler mainly used in peripheral mode
        if event == hci_event.ATT_ReadByTypeReq:
            self.gatt_server.ATTReadByTypeRspHandler(dictionary)

        if event == hci_event.ATT_WriteReq:
            #if a write req recievied, it's probably to enable a notification or a indication
            #so pass the call back func to gatt helper in case a callback is needed.
            if hasattr(self, "DidRequestNotificationByCharUUID"):
                func = getattr(self, "DidRequestNotificationByCharUUID")
            else:
                func = None
            self.gatt_server.ATTWriteReqHandler(dictionary, func)

        if event == hci_event.ATT_ReadByGrpTypeReq:
            self.gatt_server.AttGrpTypeRspHandler(dictionary)

        if event == hci_event.ATT_ReadBlobReq:

            self.gatt_server.ATTReadBlobRspHandler(dictionary)

        if event == hci_event.ATT_ExchangeMTUReq:
            conn_handle = dictionary['conn_handle'][0]
            self._DoExchangeMTURsp(conn_handle, rxServerMTU)

        if event == hci_event.GAP_DeviceDiscoveryDone:
            pass

        if event == hci_event.GAP_LinkTerminated:
            pass

        if event == hci_event.GAP_HCI_ExtensionCommandStatus:
            op_code = dictionary['op_code'][1]
            status = dictionary['status'][1]
            if op_code == "GAP_EstablishLinkRequest":
                if status == "11":  #cancel pending establish link request
                    self._DoCancelPendingConnectionRequest()
コード例 #37
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoFindPrimaryServiceByUUID(self, serviceUUID, conn_handle):
     print("COMMAND: GATT_DiscPrimaryServiceByUUID")
     print(utils.printOutput(self.ble_builder.send("fd86", value = serviceUUID, conn_handle = conn_handle[0])))        
     pass
コード例 #38
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoFindInfo(self, conn_handle = '\xfe\xff', start_handle = '\x01\x00', end_handle = '\xff\xff'):
     print("COMMAND: ATT_FindInfoReq")
     print(utils.printOutput(self.ble_builder.send("fd04", conn_handle = conn_handle, start_handle = start_handle, end_handle = end_handle)))
コード例 #39
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoDisconnect(self, conn_handle):
     print("COMMAND: GAP_TerminateLinkRequest")
     print(
         utils.printOutput(
             self.ble_builder.send("fe0a", conn_handle=conn_handle[0])))
     time.sleep(1)
コード例 #40
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoDiscCharsByUUID(self, charUUID, start_handle, end_handle, conn_handle):
     print("COMMAND: GATT_DiscCharsByUUID")
     print(utils.printOutput(self.ble_builder.send("fd88", conn_handle = conn_handle[0], start_handle = start_handle[0], end_handle = end_handle[0], type=charUUID)))
コード例 #41
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoEnableNotification(self, conf_handle, conn_handle):
     print("COMMAND: GATT_WriteCharValue")
     value = "\x01\x00"
     print(utils.printOutput(self.ble_builder.send("fd92", handle = conf_handle, value = value, conn_handle = conn_handle)))
コード例 #42
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def DoReadUsingCharUUID(self, charUUID):
     print("COMMAND: Starting establishing connection")
     print(utils.printOutput(self.ble_builder.send("fdb4", read_type=charUUID)))
コード例 #43
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def DoReadUsingCharUUID(self, charUUID):
     print("COMMAND: Starting establishing connection")
     print(
         utils.printOutput(self.ble_builder.send("fdb4",
                                                 read_type=charUUID)))
コード例 #44
0
ファイル: bluetooth.py プロジェクト: M10307431/Jingho
 def _DoExchangeMTURsp(self,conn_handle, rxServerMTU):
     print("COMMAND: ATT_ExchangeMTURsp")
     print(utils.printOutput(self.ble_builder.send("fd03",conn_handle = conn_handle, server_rx_mtu = rxServerMTU)))    
コード例 #45
0
ファイル: bluetooth.py プロジェクト: mzxu/pyble
 def _DoCancelPendingConnectionRequest(self):
     print("COMMAND: Cancel pending connection request")
     print(
         utils.printOutput(
             self.ble_builder.send("fe0a", conn_handle="\xFE\xFF")))
コード例 #46
0
 def _sendATTReadByTypeRsp(conn_handle, value, data_length):
     print("COMMAND: ATT_ReadByTypeRsp")
     print(utils.printOutput(self.ble_builder.send("fd09", conn_handle = conn_handle, data_length = data_length, value = value)))