mirror of
https://github.com/SpudGunMan/meshing-around.git
synced 2026-08-09 10:22:54 +02:00
fix Lheard/Sitrep
This commit is contained in:
+3
-1
@@ -64,7 +64,9 @@ def auto_response(message, snr, rssi, hop, message_from_id, channel_number, devi
|
||||
elif "solar" in message.lower():
|
||||
bot_response = drap_xray_conditions() + "\n" + solar_conditions()
|
||||
elif "lheard" in message.lower() or "sitrep" in message.lower():
|
||||
bot_response = "Last heard:\n" + str(get_node_list(deviceID))
|
||||
bot_response = "Last heard:\n" + str(get_node_list(1))
|
||||
if interface2_enabled:
|
||||
bot_response += "\nPort2:\n" + str(get_node_list(2))
|
||||
elif "whereami" in message.lower():
|
||||
location = get_node_location(message_from_id, deviceID)
|
||||
where = where_am_i(str(location[0]),str(location[1]))
|
||||
|
||||
+38
-47
@@ -90,9 +90,9 @@ def log_timestamp():
|
||||
def decimal_to_hex(decimal_number):
|
||||
return f"!{decimal_number:08x}"
|
||||
|
||||
def get_name_from_number(number, type='long', RXnodeId=1):
|
||||
def get_name_from_number(number, type='long', nodeInt=1):
|
||||
name = ""
|
||||
if RXnodeId == 1:
|
||||
if nodeInt == 1:
|
||||
for node in interface1.nodes.values():
|
||||
if number == node['num']:
|
||||
if type == 'long':
|
||||
@@ -104,10 +104,10 @@ def get_name_from_number(number, type='long', RXnodeId=1):
|
||||
else:
|
||||
pass
|
||||
else:
|
||||
name = str(decimal_to_hex(number)) # If long name not found, use the ID as string
|
||||
name = str(decimal_to_hex(number)) # If name not found, use the ID as string
|
||||
return name
|
||||
|
||||
if RXnodeId == 2:
|
||||
if nodeInt == 2:
|
||||
for node in interface2.nodes.values():
|
||||
if number == node['num']:
|
||||
if type == 'long':
|
||||
@@ -119,41 +119,32 @@ def get_name_from_number(number, type='long', RXnodeId=1):
|
||||
else:
|
||||
pass
|
||||
else:
|
||||
name = str(decimal_to_hex(number))
|
||||
name = str(decimal_to_hex(number)) # If name not found, use the ID as string
|
||||
return name
|
||||
return number
|
||||
|
||||
def get_node_list(nodeInt=1):
|
||||
|
||||
if interface1.nodes:
|
||||
node_list = []
|
||||
short_node_list = []
|
||||
for node in interface1.nodes.values():
|
||||
# ignore own
|
||||
if node['num'] != myNodeNum2 or node['num'] != myNodeNum:
|
||||
node_name = get_name_from_number(node['num'], 'long', nodeInt)
|
||||
snr = node.get('snr', 0)
|
||||
# Get a list of nodes on the device
|
||||
node_list = []
|
||||
short_node_list = []
|
||||
if nodeInt == 1:
|
||||
if interface1.nodes:
|
||||
for node in interface1.nodes.values():
|
||||
# ignore own
|
||||
if node['num'] != myNodeNum2 or node['num'] != myNodeNum:
|
||||
node_name = get_name_from_number(node['num'], 'long', nodeInt)
|
||||
snr = node.get('snr', 0)
|
||||
|
||||
# issue where lastHeard is not always present
|
||||
last_heard = node.get('lastHeard', 0)
|
||||
|
||||
# make a list of nodes with last heard time and SNR
|
||||
item = (node_name, last_heard, snr)
|
||||
node_list.append(item)
|
||||
|
||||
node_list.sort(key=lambda x: x[1], reverse=True)
|
||||
#print (f"Node List: {node_list[:5]}\n")
|
||||
|
||||
# make a nice list for the user
|
||||
for x in node_list[:5]:
|
||||
short_node_list.append(f"{x[0]} SNR:{x[2]}")
|
||||
|
||||
node1_list = "\n".join(short_node_list)
|
||||
node1 = (f"Port1:\n{node1_list}")
|
||||
|
||||
if interface2_enabled:
|
||||
node_list = []
|
||||
short_node_list = []
|
||||
# issue where lastHeard is not always present
|
||||
last_heard = node.get('lastHeard', 0)
|
||||
|
||||
# make a list of nodes with last heard time and SNR
|
||||
item = (node_name, last_heard, snr)
|
||||
node_list.append(item)
|
||||
else:
|
||||
print (f"{log_timestamp()} System: No nodes found")
|
||||
return ERROR_FETCHING_DATA
|
||||
if nodeInt == 2:
|
||||
if interface2.nodes:
|
||||
for node in interface2.nodes.values():
|
||||
# ignore own
|
||||
@@ -167,20 +158,20 @@ def get_node_list(nodeInt=1):
|
||||
# make a list of nodes with last heard time and SNR
|
||||
item = (node_name, last_heard, snr)
|
||||
node_list.append(item)
|
||||
|
||||
node_list.sort(key=lambda x: x[1], reverse=True)
|
||||
#print (f"Node List: {node_list[:5]}\n")
|
||||
|
||||
# make a nice list for the user
|
||||
for x in node_list[:5]:
|
||||
short_node_list.append(f"{x[0]} SNR:{x[2]}")
|
||||
|
||||
node2_list = "\n".join(short_node_list)
|
||||
node2 = (f"\n Port2:\n{node2_list}")
|
||||
else:
|
||||
node2 = ""
|
||||
else:
|
||||
print (f"{log_timestamp()} System: No nodes found")
|
||||
return ERROR_FETCHING_DATA
|
||||
|
||||
return node1 + node2
|
||||
node_list.sort(key=lambda x: x[1], reverse=True)
|
||||
#print (f"Node List: {node_list[:5]}\n")
|
||||
|
||||
# make a nice list for the user
|
||||
for x in node_list[:5]:
|
||||
short_node_list.append(f"{x[0]} SNR:{x[2]}")
|
||||
|
||||
node1_list = "\n".join(short_node_list)
|
||||
|
||||
return node1_list
|
||||
|
||||
def get_node_location(number, nodeInt=1):
|
||||
# Get the location of a node by its number from nodeDB on device
|
||||
|
||||
Reference in New Issue
Block a user