Properly implement writing memory
Start implementing abstraction class
This commit is contained in:
parent
6544864741
commit
5599cb6f43
6 changed files with 158 additions and 47 deletions
|
@ -8,49 +8,12 @@ sys.path.insert(1, os.path.dirname(os.path.dirname(sys.argv[0])))
|
|||
from draw_memory_map import memory_table # noqa: E402
|
||||
|
||||
from srnemqtt.config import get_config, get_interface # noqa: E402
|
||||
from srnemqtt.interfaces import BaseInterface # noqa: E402
|
||||
from srnemqtt.protocol import readMemory # noqa: E402
|
||||
|
||||
|
||||
def get_device_name(iface: BaseInterface) -> str | None:
|
||||
data = readMemory(iface, 0x0C, 8)
|
||||
if data is None:
|
||||
return None
|
||||
|
||||
return data.decode("utf-8").strip()
|
||||
|
||||
|
||||
def get_device_version(iface: BaseInterface) -> str | None:
|
||||
data = readMemory(iface, 0x14, 4)
|
||||
if data is None:
|
||||
return None
|
||||
|
||||
major = (data[0] << 8) + data[1]
|
||||
minor = data[2]
|
||||
patch = data[3]
|
||||
|
||||
return f"{major}.{minor}.{patch}"
|
||||
|
||||
|
||||
def get_device_serial(iface: BaseInterface) -> str | None:
|
||||
data = readMemory(iface, 0x18, 3)
|
||||
if data is None:
|
||||
return None
|
||||
|
||||
p1 = data[0]
|
||||
p2 = data[1]
|
||||
p3 = (data[2] << 8) + data[3]
|
||||
return f"{p1}-{p2}-{p3}"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
conf = get_config()
|
||||
iface = get_interface(conf)
|
||||
|
||||
print(get_device_name(iface))
|
||||
print(get_device_version(iface))
|
||||
print(get_device_serial(iface))
|
||||
|
||||
data: List[int] = []
|
||||
for i in range(0, 0xFFFF, 16):
|
||||
newdata = readMemory(iface, i, 16)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from srnemqtt.constants import MAC
|
||||
from srnemqtt.lib.feasycom_ble import BTLEUart
|
||||
from srnemqtt.protocol import construct_request, write
|
||||
from srnemqtt.protocol import construct_read_request, write
|
||||
|
||||
with BTLEUart(MAC, timeout=1) as x:
|
||||
print(x)
|
||||
|
||||
write(x, construct_request(0x0E, words=3))
|
||||
write(x, construct_read_request(0x0E, words=3))
|
||||
x.read(3, timeout=1)
|
||||
print(x.read(6, timeout=0.01))
|
||||
x.read(2, timeout=0.01)
|
||||
|
|
22
misc/test_load_switch.py
Normal file
22
misc/test_load_switch.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import sys
|
||||
from time import sleep
|
||||
|
||||
sys.path.insert(1, os.path.dirname(os.path.dirname(sys.argv[0])))
|
||||
|
||||
from srnemqtt.config import get_config, get_interface # noqa: E402
|
||||
from srnemqtt.protocol import ChargeController # noqa: E402
|
||||
|
||||
if __name__ == "__main__":
|
||||
conf = get_config()
|
||||
iface = get_interface(conf)
|
||||
cc = ChargeController(iface)
|
||||
|
||||
print(f"Serial: {cc.serial}")
|
||||
print(f"Load enabled: {cc.load_enabled}")
|
||||
cc.load_enabled = True
|
||||
print(f"Load enabled: {cc.load_enabled}")
|
||||
sleep(5)
|
||||
cc.load_enabled = False
|
||||
print(f"Load enabled: {cc.load_enabled}")
|
|
@ -9,7 +9,7 @@ print(sys.path)
|
|||
sys.path.insert(1, os.path.dirname(os.path.dirname(sys.argv[0])))
|
||||
# from srnemqtt.constants import MAC
|
||||
# from srnemqtt.lib.feasycom_ble import BTLEUart
|
||||
from srnemqtt.protocol import construct_request, write # noqa: E402
|
||||
from srnemqtt.protocol import construct_read_request, write # noqa: E402
|
||||
|
||||
# for rate in [1200, 2400, 4800, 9600, 115200]:
|
||||
for rate in [9600]:
|
||||
|
@ -19,7 +19,7 @@ for rate in [9600]:
|
|||
|
||||
print(x)
|
||||
|
||||
write(x, construct_request(0x0E, words=3))
|
||||
write(x, construct_read_request(0x0E, words=3))
|
||||
print(x.read(3))
|
||||
print(x.read(6))
|
||||
print(x.read(2))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue