mirror of
https://github.com/meshcore-dev/meshcore-cli.git
synced 2026-04-20 22:13:48 +00:00
cx issues and indent
This commit is contained in:
parent
452d90b352
commit
ae13eea883
1 changed files with 216 additions and 191 deletions
|
|
@ -362,204 +362,204 @@ def make_completion_dict(contacts, pending={}, to=None, channels=None):
|
|||
}
|
||||
|
||||
root_completion_list = {
|
||||
"ver" : None,
|
||||
"infos" : None,
|
||||
"advert" : None,
|
||||
"floodadv" : None,
|
||||
"msg" : contact_list,
|
||||
"wait_ack" : None,
|
||||
"time" : None,
|
||||
"clock" : {"sync" : None},
|
||||
"reboot" : None,
|
||||
"card" : None,
|
||||
"upload_card" : None,
|
||||
"contacts": None,
|
||||
"pending_contacts": None,
|
||||
"add_pending": pending_list,
|
||||
"flush_pending": None,
|
||||
"contact_info": contact_list,
|
||||
"export_contact" : contact_list,
|
||||
"upload_contact" : contact_list,
|
||||
"share_contact" : contact_list,
|
||||
"path": contact_list,
|
||||
"disc_path" : contact_list,
|
||||
"trace" : None,
|
||||
"reset_path" : contact_list,
|
||||
"change_path" : contact_list,
|
||||
"change_flags" : contact_list,
|
||||
"remove_contact" : contact_list,
|
||||
"import_contact" : {"meshcore://":None},
|
||||
"reload_contacts" : None,
|
||||
"login" : contact_list,
|
||||
"cmd" : contact_list,
|
||||
"req_status" : contact_list,
|
||||
"req_bstatus" : contact_list,
|
||||
"logout" : contact_list,
|
||||
"req_telemetry" : contact_list,
|
||||
"req_binary" : contact_list,
|
||||
"req_mma" : contact_list,
|
||||
"self_telemetry" : None,
|
||||
"get_channel": None,
|
||||
"set_channel": None,
|
||||
"get_channels": None,
|
||||
"remove_channel": None,
|
||||
"set" : {
|
||||
"name" : None,
|
||||
"pin" : None,
|
||||
"radio" : {",,,":None, "f,bw,sf,cr":None},
|
||||
"tx" : None,
|
||||
"tuning" : {",", "af,tx_d"},
|
||||
"lat" : None,
|
||||
"lon" : None,
|
||||
"coords" : None,
|
||||
"print_snr" : {"on":None, "off": None},
|
||||
"json_msgs" : {"on":None, "off": None},
|
||||
"color" : {"on":None, "off":None},
|
||||
"print_name" : {"on":None, "off":None},
|
||||
"print_adverts" : {"on":None, "off":None},
|
||||
"print_new_contacts" : {"on": None, "off":None},
|
||||
"print_path_updates" : {"on":None,"off":None},
|
||||
"classic_prompt" : {"on" : None, "off":None},
|
||||
"manual_add_contacts" : {"on" : None, "off":None},
|
||||
"telemetry_mode_base" : {"always" : None, "device":None, "never":None},
|
||||
"telemetry_mode_loc" : {"always" : None, "device":None, "never":None},
|
||||
"telemetry_mode_env" : {"always" : None, "device":None, "never":None},
|
||||
"advert_loc_policy" : {"none" : None, "share" : None},
|
||||
"auto_update_contacts" : {"on":None, "off":None},
|
||||
"multi_acks" : {"on": None, "off":None},
|
||||
"max_attempts" : None,
|
||||
"max_flood_attempts" : None,
|
||||
"flood_after" : None,
|
||||
},
|
||||
"get" : {"name":None,
|
||||
"bat":None,
|
||||
"fstats": None,
|
||||
"radio":None,
|
||||
"tx":None,
|
||||
"coords":None,
|
||||
"lat":None,
|
||||
"lon":None,
|
||||
"print_snr":None,
|
||||
"json_msgs":None,
|
||||
"color":None,
|
||||
"print_name":None,
|
||||
"print_adverts":None,
|
||||
"print_path_updates":None,
|
||||
"print_new_contacts":None,
|
||||
"classic_prompt":None,
|
||||
"manual_add_contacts":None,
|
||||
"telemetry_mode_base":None,
|
||||
"telemetry_mode_loc":None,
|
||||
"telemetry_mode_env":None,
|
||||
"advert_loc_policy":None,
|
||||
"auto_update_contacts":None,
|
||||
"multi_acks":None,
|
||||
"max_attempts":None,
|
||||
"max_flood_attempts":None,
|
||||
"flood_after":None,
|
||||
"custom":None,
|
||||
},
|
||||
}
|
||||
"ver" : None,
|
||||
"infos" : None,
|
||||
"advert" : None,
|
||||
"floodadv" : None,
|
||||
"msg" : contact_list,
|
||||
"wait_ack" : None,
|
||||
"time" : None,
|
||||
"clock" : {"sync" : None},
|
||||
"reboot" : None,
|
||||
"card" : None,
|
||||
"upload_card" : None,
|
||||
"contacts": None,
|
||||
"pending_contacts": None,
|
||||
"add_pending": pending_list,
|
||||
"flush_pending": None,
|
||||
"contact_info": contact_list,
|
||||
"export_contact" : contact_list,
|
||||
"upload_contact" : contact_list,
|
||||
"share_contact" : contact_list,
|
||||
"path": contact_list,
|
||||
"disc_path" : contact_list,
|
||||
"trace" : None,
|
||||
"reset_path" : contact_list,
|
||||
"change_path" : contact_list,
|
||||
"change_flags" : contact_list,
|
||||
"remove_contact" : contact_list,
|
||||
"import_contact" : {"meshcore://":None},
|
||||
"reload_contacts" : None,
|
||||
"login" : contact_list,
|
||||
"cmd" : contact_list,
|
||||
"req_status" : contact_list,
|
||||
"req_bstatus" : contact_list,
|
||||
"logout" : contact_list,
|
||||
"req_telemetry" : contact_list,
|
||||
"req_binary" : contact_list,
|
||||
"req_mma" : contact_list,
|
||||
"self_telemetry" : None,
|
||||
"get_channel": None,
|
||||
"set_channel": None,
|
||||
"get_channels": None,
|
||||
"remove_channel": None,
|
||||
"set" : {
|
||||
"name" : None,
|
||||
"pin" : None,
|
||||
"radio" : {",,,":None, "f,bw,sf,cr":None},
|
||||
"tx" : None,
|
||||
"tuning" : {",", "af,tx_d"},
|
||||
"lat" : None,
|
||||
"lon" : None,
|
||||
"coords" : None,
|
||||
"print_snr" : {"on":None, "off": None},
|
||||
"json_msgs" : {"on":None, "off": None},
|
||||
"color" : {"on":None, "off":None},
|
||||
"print_name" : {"on":None, "off":None},
|
||||
"print_adverts" : {"on":None, "off":None},
|
||||
"print_new_contacts" : {"on": None, "off":None},
|
||||
"print_path_updates" : {"on":None,"off":None},
|
||||
"classic_prompt" : {"on" : None, "off":None},
|
||||
"manual_add_contacts" : {"on" : None, "off":None},
|
||||
"telemetry_mode_base" : {"always" : None, "device":None, "never":None},
|
||||
"telemetry_mode_loc" : {"always" : None, "device":None, "never":None},
|
||||
"telemetry_mode_env" : {"always" : None, "device":None, "never":None},
|
||||
"advert_loc_policy" : {"none" : None, "share" : None},
|
||||
"auto_update_contacts" : {"on":None, "off":None},
|
||||
"multi_acks" : {"on": None, "off":None},
|
||||
"max_attempts" : None,
|
||||
"max_flood_attempts" : None,
|
||||
"flood_after" : None,
|
||||
},
|
||||
"get" : {"name":None,
|
||||
"bat":None,
|
||||
"fstats": None,
|
||||
"radio":None,
|
||||
"tx":None,
|
||||
"coords":None,
|
||||
"lat":None,
|
||||
"lon":None,
|
||||
"print_snr":None,
|
||||
"json_msgs":None,
|
||||
"color":None,
|
||||
"print_name":None,
|
||||
"print_adverts":None,
|
||||
"print_path_updates":None,
|
||||
"print_new_contacts":None,
|
||||
"classic_prompt":None,
|
||||
"manual_add_contacts":None,
|
||||
"telemetry_mode_base":None,
|
||||
"telemetry_mode_loc":None,
|
||||
"telemetry_mode_env":None,
|
||||
"advert_loc_policy":None,
|
||||
"auto_update_contacts":None,
|
||||
"multi_acks":None,
|
||||
"max_attempts":None,
|
||||
"max_flood_attempts":None,
|
||||
"flood_after":None,
|
||||
"custom":None,
|
||||
},
|
||||
}
|
||||
|
||||
contact_completion_list = {
|
||||
"contact_info": None,
|
||||
"export_contact" : None,
|
||||
"share_contact" : None,
|
||||
"upload_contact" : None,
|
||||
"path": None,
|
||||
"disc_path": None,
|
||||
"trace": None,
|
||||
"dtrace": None,
|
||||
"reset_path" : None,
|
||||
"change_path" : None,
|
||||
"change_flags" : None,
|
||||
"req_telemetry" : None,
|
||||
"req_binary" : None,
|
||||
"forget_password" : None,
|
||||
}
|
||||
"contact_info": None,
|
||||
"export_contact" : None,
|
||||
"share_contact" : None,
|
||||
"upload_contact" : None,
|
||||
"path": None,
|
||||
"disc_path": None,
|
||||
"trace": None,
|
||||
"dtrace": None,
|
||||
"reset_path" : None,
|
||||
"change_path" : None,
|
||||
"change_flags" : None,
|
||||
"req_telemetry" : None,
|
||||
"req_binary" : None,
|
||||
"forget_password" : None,
|
||||
}
|
||||
|
||||
client_completion_list = dict(contact_completion_list)
|
||||
client_completion_list.update({
|
||||
"get" : { "timeout":None, },
|
||||
"set" : { "timeout":None, },
|
||||
"get" : { "timeout":None, },
|
||||
"set" : { "timeout":None, },
|
||||
})
|
||||
|
||||
repeater_completion_list = dict(contact_completion_list)
|
||||
repeater_completion_list.update({
|
||||
"login" : None,
|
||||
"logout" : None,
|
||||
"req_status" : None,
|
||||
"req_bstatus" : None,
|
||||
"cmd" : None,
|
||||
"ver" : None,
|
||||
"advert" : None,
|
||||
"time" : None,
|
||||
"clock" : {"sync" : None},
|
||||
"reboot" : None,
|
||||
"start ota" : None,
|
||||
"password" : None,
|
||||
"neighbors" : None,
|
||||
"req_acl":None,
|
||||
"setperm":contact_list,
|
||||
"gps" : {"on":None,"off":None,"sync":None,"setloc":None,
|
||||
"advert" : {"none": None, "share": None, "prefs": None},
|
||||
},
|
||||
"sensor": {"list": None, "set": {"gps": None}, "get": {"gps": None}},
|
||||
"get" : {"name" : None,
|
||||
"role":None,
|
||||
"radio" : None,
|
||||
"freq":None,
|
||||
"tx":None,
|
||||
"af" : None,
|
||||
"repeat" : None,
|
||||
"allow.read.only" : None,
|
||||
"flood.advert.interval" : None,
|
||||
"flood.max":None,
|
||||
"advert.interval" : None,
|
||||
"guest.password" : None,
|
||||
"rxdelay": None,
|
||||
"txdelay": None,
|
||||
"direct.tx_delay":None,
|
||||
"public.key":None,
|
||||
"lat" : None,
|
||||
"lon" : None,
|
||||
"telemetry" : None,
|
||||
"status" : None,
|
||||
"timeout" : None,
|
||||
"acl":None,
|
||||
"bridge.enabled":None,
|
||||
"bridge.delay":None,
|
||||
"bridge.source":None,
|
||||
"bridge.baud":None,
|
||||
"bridge.secret":None,
|
||||
"bridge.type":None,
|
||||
},
|
||||
"set" : {"name" : None,
|
||||
"radio" : {",,,":None, "f,bw,sf,cr": None},
|
||||
"freq" : None,
|
||||
"tx" : None,
|
||||
"af": None,
|
||||
"repeat" : {"on": None, "off": None},
|
||||
"flood.advert.interval" : None,
|
||||
"flood.max" : None,
|
||||
"advert.interval" : None,
|
||||
"guest.password" : None,
|
||||
"allow.read.only" : {"on": None, "off": None},
|
||||
"rxdelay" : None,
|
||||
"txdelay": None,
|
||||
"direct.txdelay" : None,
|
||||
"lat" : None,
|
||||
"lon" : None,
|
||||
"timeout" : None,
|
||||
"perm":contact_list,
|
||||
"bridge.enabled":{"on": None, "off": None},
|
||||
"bridge.delay":None,
|
||||
"bridge.source":None,
|
||||
"bridge.baud":None,
|
||||
"bridge.secret":None,
|
||||
},
|
||||
"erase": None,
|
||||
"log" : {"start" : None, "stop" : None, "erase" : None}
|
||||
"login" : None,
|
||||
"logout" : None,
|
||||
"req_status" : None,
|
||||
"req_bstatus" : None,
|
||||
"cmd" : None,
|
||||
"ver" : None,
|
||||
"advert" : None,
|
||||
"time" : None,
|
||||
"clock" : {"sync" : None},
|
||||
"reboot" : None,
|
||||
"start ota" : None,
|
||||
"password" : None,
|
||||
"neighbors" : None,
|
||||
"req_acl":None,
|
||||
"setperm":contact_list,
|
||||
"gps" : {"on":None,"off":None,"sync":None,"setloc":None,
|
||||
"advert" : {"none": None, "share": None, "prefs": None},
|
||||
},
|
||||
"sensor": {"list": None, "set": {"gps": None}, "get": {"gps": None}},
|
||||
"get" : {"name" : None,
|
||||
"role":None,
|
||||
"radio" : None,
|
||||
"freq":None,
|
||||
"tx":None,
|
||||
"af" : None,
|
||||
"repeat" : None,
|
||||
"allow.read.only" : None,
|
||||
"flood.advert.interval" : None,
|
||||
"flood.max":None,
|
||||
"advert.interval" : None,
|
||||
"guest.password" : None,
|
||||
"rxdelay": None,
|
||||
"txdelay": None,
|
||||
"direct.tx_delay":None,
|
||||
"public.key":None,
|
||||
"lat" : None,
|
||||
"lon" : None,
|
||||
"telemetry" : None,
|
||||
"status" : None,
|
||||
"timeout" : None,
|
||||
"acl":None,
|
||||
"bridge.enabled":None,
|
||||
"bridge.delay":None,
|
||||
"bridge.source":None,
|
||||
"bridge.baud":None,
|
||||
"bridge.secret":None,
|
||||
"bridge.type":None,
|
||||
},
|
||||
"set" : {"name" : None,
|
||||
"radio" : {",,,":None, "f,bw,sf,cr": None},
|
||||
"freq" : None,
|
||||
"tx" : None,
|
||||
"af": None,
|
||||
"repeat" : {"on": None, "off": None},
|
||||
"flood.advert.interval" : None,
|
||||
"flood.max" : None,
|
||||
"advert.interval" : None,
|
||||
"guest.password" : None,
|
||||
"allow.read.only" : {"on": None, "off": None},
|
||||
"rxdelay" : None,
|
||||
"txdelay": None,
|
||||
"direct.txdelay" : None,
|
||||
"lat" : None,
|
||||
"lon" : None,
|
||||
"timeout" : None,
|
||||
"perm":contact_list,
|
||||
"bridge.enabled":{"on": None, "off": None},
|
||||
"bridge.delay":None,
|
||||
"bridge.source":None,
|
||||
"bridge.baud":None,
|
||||
"bridge.secret":None,
|
||||
},
|
||||
"erase": None,
|
||||
"log" : {"start" : None, "stop" : None, "erase" : None}
|
||||
})
|
||||
|
||||
sensor_completion_list = dict(repeater_completion_list)
|
||||
|
|
@ -2714,7 +2714,7 @@ async def main(argv):
|
|||
with open(MCCLI_ADDRESS, encoding="utf-8") as f :
|
||||
address = f.readline().strip()
|
||||
|
||||
opts, args = getopt.getopt(argv, "a:d:s:ht:p:b:jDhvSlT:P")
|
||||
opts, args = getopt.getopt(argv, "a:d:s:ht:p:b:fjDhvSlT:P")
|
||||
for opt, arg in opts :
|
||||
match opt:
|
||||
case "-d" : # name specified on cmdline
|
||||
|
|
@ -2744,6 +2744,8 @@ async def main(argv):
|
|||
case "-v":
|
||||
version()
|
||||
return
|
||||
case "-f": # connect to first encountered device
|
||||
address = ""
|
||||
case "-l" :
|
||||
print("BLE devices:")
|
||||
try :
|
||||
|
|
@ -2813,7 +2815,10 @@ async def main(argv):
|
|||
elif address and len(address) == 36 and len(address.split("-")) == 5:
|
||||
client = BleakClient(address) # mac uses uuid, we'll pass a client
|
||||
else:
|
||||
logger.info(f"Scanning BLE for device matching {address}")
|
||||
if address == "":
|
||||
logger.info(f"Searching first MC BLE device")
|
||||
else:
|
||||
logger.info(f"Scanning BLE for device matching {address}")
|
||||
devices = await BleakScanner.discover(timeout=timeout)
|
||||
found = False
|
||||
for d in devices:
|
||||
|
|
@ -2838,6 +2843,26 @@ async def main(argv):
|
|||
mc = await MeshCore.create_ble(address=address, device=device, client=client, debug=debug, only_error=json_output, pin=pin)
|
||||
except ConnectionError :
|
||||
logger.info("Error while connecting, retrying once ...")
|
||||
if device is None or client is None: # Search for device
|
||||
logger.info(f"Scanning BLE for device matching {address}")
|
||||
devices = await BleakScanner.discover(timeout=timeout)
|
||||
found = False
|
||||
for d in devices:
|
||||
if not d.name is None and d.name.startswith("MeshCore-") and\
|
||||
(address is None or address in d.name) :
|
||||
address=d.address
|
||||
device=d
|
||||
logger.info(f"Found device {d.name} {d.address}")
|
||||
found = True
|
||||
break
|
||||
elif d.address == address : # on a mac, address is an uuid
|
||||
device = d
|
||||
logger.info(f"Found device {d.name} {d.address}")
|
||||
found = True
|
||||
break
|
||||
if not found :
|
||||
logger.info(f"Couldn't find device {address}")
|
||||
return
|
||||
try :
|
||||
mc = await MeshCore.create_ble(address=address, device=device, client=client, debug=debug, only_error=json_output, pin=pin)
|
||||
except ConnectionError :
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue