Esempio n. 1
0
                                int(sensors[mac]["calpoint1"]),
                                int(sensors[mac]["calpoint2"]))
                            print(
                                "Humidity calibrated (2 points calibration): ",
                                measurement.humidity)
                        elif "humidityOffset" in sensors[mac]:
                            measurement.humidity = humidity + int(
                                sensors[mac]["humidityOffset"])
                            print("Humidity calibrated (offset calibration): ",
                                  measurement.humidity)
                    else:
                        measurement.sensorname = mac
                    if (args.callback):
                        measurements.append(measurement)
                    #print("Length:", len(measurements))
                    print("")

        if args.watchdogtimer:
            keepingLEScanRunningThread = threading.Thread(
                target=keepingLEScanRunning)
            keepingLEScanRunningThread.start()
            logging.debug("keepingLEScanRunningThread started")

        # Blocking call (the given handler will be called each time a new LE
        # advertisement packet is detected)
        parse_le_advertising_events(sock,
                                    handler=le_advertise_packet_handler,
                                    debug=False)
    except KeyboardInterrupt:
        disable_le_scan(sock)
                pkt_start = pkt_data_start + pkt_data_len
                pkt_data_start = pkt_start + 2
                pkt_data_len = data[pkt_start] - 1
                assert data[pkt_start + 1] == 0xFF  # Type should be "Manufacturer Specific Data"
                print("manufacturer data len is", pkt_data_len)
                my_data = data[pkt_data_start:pkt_data_start + pkt_data_len]
                my_data = struct.unpack('B' * pkt_data_len, my_data)
                print("manufacturer data is", my_data)
                if my_data[2] == 1:
                    key = pynput.keyboard.Key.right
                    key = KEY_VOLUME_UP
                    keyboard.press(key); keyboard.release(key)
                elif my_data[2] == 2:
                    key = pynput.keyboard.Key.left
                    key = KEY_VOLUME_DOWN
                    keyboard.press(key); keyboard.release(key)
                prev_rot_val = my_data[1]

        prev_data = data_wo_rssi

    # Blocking call (the given handler will be called each time a new LE
    # advertisement packet is detected)
    parse_le_advertising_events(sock,
                                # mac_addr=['24:0A:C4:00:A9:72'], # wipy2
                                mac_addr=['E1:1B:2B:AC:1F:F9'],   # ble nano v2
                                handler=le_advertise_packet_handler,
                                debug=False)
except KeyboardInterrupt:
    disable_le_scan(sock)