updated to latest meshcore_py

This commit is contained in:
Florent 2025-04-14 22:56:03 +02:00
parent c92e1c810c
commit 76cbbf1536
2 changed files with 18 additions and 13 deletions

View file

@ -17,7 +17,7 @@ classifiers = [
] ]
license = "MIT" license = "MIT"
license-files = ["LICEN[CS]E*"] license-files = ["LICEN[CS]E*"]
dependencies = [ "meshcore >= 1.9.1" ] dependencies = [ "meshcore >= 1.9.3" ]
[project.urls] [project.urls]
Homepage = "https://github.com/fdlamotte/meshcore-cli" Homepage = "https://github.com/fdlamotte/meshcore-cli"

View file

@ -19,7 +19,7 @@ from meshcore import MeshCore
from meshcore import EventType from meshcore import EventType
from meshcore import logger from meshcore import logger
logger.setLevel(logging.DEBUG) #logger.setLevel(logging.DEBUG)
# default address is stored in a config file # default address is stored in a config file
MCCLI_CONFIG_DIR = str(Path.home()) + "/.config/meshcore/" MCCLI_CONFIG_DIR = str(Path.home()) + "/.config/meshcore/"
@ -40,7 +40,7 @@ async def next_cmd(mc, cmds):
argnum=1 argnum=1
print(await mc.commands.set_time(int(time.time()))) print(await mc.commands.set_time(int(time.time())))
else: else:
timestamp = (await mc.commands.get_time())["time"] timestamp = (await mc.commands.get_time()).payload["time"]
print('Current time :' print('Current time :'
f' {datetime.datetime.fromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S")}' f' {datetime.datetime.fromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S")}'
f' ({timestamp})') f' ({timestamp})')
@ -126,7 +126,7 @@ async def next_cmd(mc, cmds):
contact = mc.get_contact_by_name(cmds[1]) contact = mc.get_contact_by_name(cmds[1])
print(await mc.commands.send_statusreq(contact)) print(await mc.commands.send_statusreq(contact))
case "contacts" | "lc": case "contacts" | "lc":
print(json.dumps(await mc.commands.get_contacts(),indent=4)) print(json.dumps((await mc.commands.get_contacts()).payload,indent=4))
case "change_path" | "cp": case "change_path" | "cp":
argnum = 2 argnum = 2
await mc.ensure_contacts() await mc.ensure_contacts()
@ -147,9 +147,9 @@ async def next_cmd(mc, cmds):
argnum = 1 argnum = 1
await mc.ensure_contacts() await mc.ensure_contacts()
contact = mc.get_contact_by_name(cmds[1]) contact = mc.get_contact_by_name(cmds[1])
print(await mc.commands.export_contact(contact)) print((await mc.commands.export_contact(contact)).payload)
case "export_myself"|"e": case "export_myself"|"e":
print(await mc.commands.export_contact()) print((await mc.commands.export_contact()).payload)
case "remove_contact" : case "remove_contact" :
argnum = 1 argnum = 1
await mc.ensure_contacts() await mc.ensure_contacts()
@ -158,10 +158,15 @@ async def next_cmd(mc, cmds):
case "recv" | "r" : case "recv" | "r" :
print(await mc.commands.get_msg()) print(await mc.commands.get_msg())
case "sync_msgs" | "sm": case "sync_msgs" | "sm":
res=True while True:
while res: res = await mc.commands.get_msg()
res = (await mc.commands.get_msg())["success"] if res.type == EventType.NO_MORE_MSGS:
print (res) logger.error("No more messages")
break
elif res.type == EventType.ERROR:
logger.error(f"Error retrieving messages: {res.payload}")
break
print(res)
case "infos" | "i" : case "infos" | "i" :
print(json.dumps(mc.self_info,indent=4)) print(json.dumps(mc.self_info,indent=4))
case "advert" | "a": case "advert" | "a":
@ -179,11 +184,11 @@ async def next_cmd(mc, cmds):
argnum = 1 argnum = 1
if await mc.wait_for_event(EventType.MESSAGES_WAITING, if await mc.wait_for_event(EventType.MESSAGES_WAITING,
timeout=int(cmds[1])) : timeout=int(cmds[1])) :
print (await mc.get_msg()) print (await mc.commands.get_msg())
case "wmt8"|"]": case "wmt8"|"]":
if await mc.wait_for_event(EventType.MESSAGES_WAITING, if await mc.wait_for_event(EventType.MESSAGES_WAITING,
timeout=8) : timeout=8) :
print (await mc.get_msg()) print (await mc.commands.get_msg())
case "wait_ack" | "wa" | "}": case "wait_ack" | "wa" | "}":
print(await mc.wait_for_event(EventType.ACK, timeout = 5)) print(await mc.wait_for_event(EventType.ACK, timeout = 5))
case "wait_login" | "wl" | "]]": case "wait_login" | "wl" | "]]":
@ -290,7 +295,7 @@ async def main(argv):
con = BLEConnection(address) con = BLEConnection(address)
address = await con.connect() address = await con.connect()
if address is None or address == "" : # no device, no action if address is None or address == "" : # no device, no action
printerr ("No device found, exiting ...") logger.error("No device found, exiting ...")
return return
# Store device address in configuration # Store device address in configuration