コード例 #1
0
def scooterJam():
    """ Scans for available devices. """
    scan = Scanner()
    sec = 5
    print("Scanning for %s seconds" % sec)
    devs = scan.scan(sec)
    print("Hackable Scooters found:")
    for dev in devs:
        localname = dev.getValueText(9)
        if localname and localname.startswith(
                "MIScooter") and dev.addr != my_scooter_mac_address:
            print("%s" % (dev.addr))
            scooter_mac_address = dev.addr
            scooter = m365py.M365(scooter_mac_address, handle_message)
            scooter.connect()
            print("Connected to Scooter")
            scooter.request(m365message.turn_on_lock)
            print("Locked scooter")
            time.sleep(1)
            scooter.disconnect()
            print("Disconnected from Scooter")
        elif localname or dev.addr == (my_scooter_mac_address):
            print("Skipping your scooter")
    print("No more scooters in range. Shutting down.")
    scooterJam()
コード例 #2
0
def scooter_control():
    # This is the Scooter - Bluetooth
    #put the mac address of your scooter
    scooter_mac_address = 'E3:15:58:36:C0:90'
    scooter = m365py.M365(scooter_mac_address, handle_message)
    scooter.set_connected_callback(connected)
    scooter.set_disconnected_callback(disconnected)
    scooter.connect()
    scooter.request(m365message.battery_percentage)
    scooter.request(m365message.turn_on_lock)

    while True:

        if Lock_status.l == True:
            scooter.request(m365message.turn_off_tail_light)
            scooter.request(m365message.turn_on_lock)
            print("lockei")
        else:
            scooter.request(m365message.turn_off_lock)
            scooter.request(m365message.turn_on_tail_light)
            print("deslockei")

        scooter.request(m365message.battery_percentage)
        data = json.dumps(scooter.cached_state, indent=4, sort_keys=True)
        battery = json.loads(data)
        client.publish("trotinete/1/battery", str(battery['battery_percent']))
        # Send battery status every 5s
        time.sleep(3)
    return "main terminated"
コード例 #3
0
    def __init__(self, mac):
        self.session = None
        self.speed = 0
        self.battery = 0
        self.lat = 0
        self.lng = 0
        self.mac = mac
        self.session = None

        self.scooter = m365py.M365(mac, self.handleMessage)
コード例 #4
0
#logging.getLogger('m365py').setLevel(logging.DEBUG)

# parametres
macAddress = sys.argv[1]
if sys.argv[2] == '1':
    autoReconnect = True
else:
    autoReconnect = False


# callback for received messages from scooter
def handle_message(m365_peripheral, m365_message, value):
    ret = 1


scooter = m365py.M365(macAddress, handle_message, autoReconnect)
scooter.connect()

# Request all currently supported 'attributes'
scooter.request(m365message.battery_voltage)
scooter.request(m365message.battery_ampere)
scooter.request(m365message.battery_percentage)
scooter.request(m365message.battery_cell_voltages)
scooter.request(m365message.battery_info)

scooter.request(m365message.general_info)
scooter.request(m365message.motor_info)
scooter.request(m365message.trip_info)
scooter.request(m365message.trip_distance)
scooter.request(m365message.distance_left)
scooter.request(m365message.speed)
コード例 #5
0
ファイル: main.py プロジェクト: xedsvg/m365py
    if m365_message.attribute == m365message.Attribute.SUPPLEMENTARY:
        if value['kers_mode'] == m365py.KersMode.WEAK:
            print('kers set to weak')


def connected(m365_peripheral):
    print('Scooter Connected')


def disconnected(m365_peripheral):
    print('Scooter Disconnected')


scooter_mac_address = 'D6:0E:DB:7B:EA:AB'
scooter = m365py.M365(scooter_mac_address, handle_message)
scooter.set_connected_callback(connected)
scooter.set_disconnected_callback(disconnected)
scooter.connect()

# Make tail light blink in a blocking fashion, timeout = 2.0
scooter.request(m365message.turn_off_tail_light)
received_within_timeout = scooter.waitForNotifications(2.0)
scooter.request(m365message.turn_on_tail_light)
received_within_timeout = scooter.waitForNotifications(2.0)
scooter.request(m365message.turn_off_tail_light)
received_within_timeout = scooter.waitForNotifications(2.0)

# turn on cruise mode
scooter.request(m365message.turn_on_cruise)
# fetch value to confirm that the scooter cruise mode has been enabled