hosea1008
2/4/2019 - 9:34 AM

python ble

import time
from bluepy.btle import Peripheral

my_gamesir = Peripheral('c6:86:a1:00:db:b9', 'random')

services = my_gamesir.getServices()
for service in services:
    print service

    control_service = services[3]
    charac_dics = control_service.getCharacteristics()
    for charac in charac_dics:
        print charac.uuid

    charac1, charac2, charac3 = charac_dics

    while True:
        time.sleep(1)
        print "\n\nCharac1"
        for c in charac1.read():
            print "%x" % ord(c),

        print "\n\nCharac2"
        for c in charac2.read():
            print "%x" % ord(c),

        print "\n\nCharac3"
        for c in charac3.read():
            print "%x" % ord(c),
from __future__ import print_function
import time
from bluepy.btle import Peripheral

my_gamesir = Peripheral('c6:86:a1:00:db:b9', 'random')

services = my_gamesir.getServices()
for service in services:
    print(service)

    control_service = services[3]
    charac_dics = control_service.getCharacteristics()
    for charac in charac_dics:
        print(charac.uuid)


    while True:
        time.sleep(0.01)

        charac1, charac2, charac3 = [item.read() for item in charac_dics]

        status_code = [charac1[0], charac1[1]]
        on_press_key = [charac1[9], charac1[10], charac1[11]]
        press_counter = charac1[-1]
        right_push = [charac1[5], charac1[6]]
        left_puth = [charac1[3], charac1[4]]

        print("status %s" % status_code, end='  ')
        print("on_press %s" % on_press_key, end='  ')
        print("press_counter %s" % press_counter, end='  ')
        print("right_push %s" % right_push, end='  ')
        print("left_push %s" % left_puth, end='\b\r')
from __future__ import print_function
import struct
import time
from bluepy.btle import Peripheral

my_gamesir = Peripheral('c6:86:a1:00:db:b9', 'random')

services = my_gamesir.getServices()
for service in services:
    print(service)

    control_service = services[3]
    charac_dics = control_service.getCharacteristics()
    for charac in charac_dics:
        print(charac.uuid)


    while True:
        time.sleep(0.01)

        charac1, charac2, charac3 = [item.read() for item in charac_dics]

        status_code = struct.unpack('H', charac1[:2])[0]

        if status_code == 50593:
            on_press_key = struct.unpack('I', charac1[9:13])[0]
            press_counter = struct.unpack('B', charac1[-1])[0]

            bar_status = struct.unpack('5B', charac1[2:7])
            bar_status_bin = ''.join([bin(item).split('b')[1].rjust(8).replace(' ', '0') for item in bar_status])

            left_drag = int(bar_status_bin[0:10], 2)
            left_push = int(bar_status_bin[10:20], 2)
            right_drag = int(bar_status_bin[20:30], 2)
            right_push = int(bar_status_bin[30:40], 2)

            print("status %s" % status_code, end='  ')
            print("on_press %s" % on_press_key, end='  ')
            print("press_counter %s" % press_counter, end='  ')
            print("left_drag %s" % left_drag, end='  ')
            print("right_drag %s" % right_drag, end='  ')
            print("left_push %s" % left_push, end='  ')
            print("right_push %s" % right_push, end='\r')

        # break