Exemplo n.º 1
0
# link = TCPLink()
# link = BLELink()

with link:
    print("Scanning...")
    ports = link.scan()
    print(ports)

    tran = XiaomiTransport(link)

    # link.open(("127.0.0.1", 6000))
    link.open(ports[0][1])
    print("Connected")

    hfo = open("BmsEep.bin", "wb")
    for i in xrange(ADDR, ADDR + SIZE, READ_CHUNK_SIZE):
        print(".")
        for retry in xrange(5):
            try:
                data = tran.execute(ReadMem(BT.BMS, i, "16s"))[0]
            except LinkTimeoutException:
                continue
            break
        else:
            print("No response !")
            break
        hfo.write(data)

    hfo.close()
    link.close()
Exemplo n.º 2
0
from py9b.transport.xiaomi import XiaomiTransport

from py9b.command.regio import ReadRegs

import time

link = BleakLink()
with link:
    devs = link.scan()
    print(devs)

    tran = XiaomiTransport(link)

    link.open(devs[0])

    data = tran.execute(ReadRegs(BT.ESC, 0x68, "<H"))[0]
    print("BLE version: %04x" % data)

    if data >= 0x81:
        print("Connected, fetching keys...")
        keys = link.fetch_keys()
        tran.keys = keys
        print("keys:", keys)

        # Recover longer keystream
        req = PKT(src=BT.HOST,
                  dst=BT.BMS,
                  cmd=0x01,
                  arg=0x50,
                  data=bytearray([0x20]))
        tran.send(req)