Bluetooth event handling - FiPy



  • I can connect to my BLE peripheral device. on the required characteristic I start a char notify and send a command for the peripheral to perform a measurement. In the picture below the underlined event is a time/date message which is periodically sent. The highlighted messages are the three measurements in reply to the request.
    0_1536198811754_e2fe9283-441b-4bb9-9d59-411f0fcd83df-image.png
    My event handler does nothing except get the value an append it to an array called buffer.

    def BLE_EVT_HAND(characteristic):
        global buffer
        buffer.append(characteristic.value())
    

    To request and wait for the measurements the following is performed:

    #send command to probe to undertake a measurement
    cmd=bytearray(struct.pack("<H", BLE_AGSENSOR_CONFIGURATION_OPCODE_START_MEASUREMENT))
    char.write(cmd)
    #wait for probe measurements
    time.sleep(2)
    

    The problem I have is that I only receive 2 of the three measurements and there are double triggers on the first and third, see picture below.

    0_1536199454296_8da12f11-dfba-4b3f-b152-8db6de875d4c-image.png

    Any comment appreciated



Pycom on Twitter