@@ -74,17 +74,20 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
7474 else :
7575 await mc .ensure_contacts ()
7676 data = ev .payload
77+ if data ['path_len' ] == 255 :
78+ path_str = "D"
79+ else :
80+ path_str = f"{ data ['path_len' ]} "
81+ if "SNR" in data and process_event_message .print_snr :
82+ path_str = path_str + f",{ data ['SNR' ]} dB"
83+
7784 if (data ['type' ] == "PRIV" ) :
7885 ct = mc .get_contact_by_key_prefix (data ['pubkey_prefix' ])
7986 if ct is None :
8087 logger .info (f"Unknown contact with pubkey prefix: { data ['pubkey_prefix' ]} " )
8188 name = data ["pubkey_prefix" ]
8289 else :
8390 name = ct ["adv_name" ]
84- if data ['path_len' ] == 255 :
85- path_str = "D"
86- else :
87- path_str = str (data ['path_len' ])
8891
8992 disp = f"{ ANSI_GREEN } { name } "
9093 if 'signature' in data :
@@ -98,18 +101,15 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
98101 else :
99102 print (disp )
100103 elif (data ['type' ] == "CHAN" ) :
101- if data ['path_len' ] == 255 :
102- path_str = "D"
103- else :
104- path_str = f"{ ANSI_YELLOW } ({ data ['path_len' ]} ){ ANSI_END } "
105-
104+ path_str = f"{ ANSI_YELLOW } ({ path_str } ){ ANSI_END } "
106105 if above :
107106 print_above (f"{ ANSI_GREEN } ch{ data ['channel_idx' ]} ({ path_str } ): { data ['text' ]} " )
108107 else :
109108 print (f"ch{ data ['channel_idx' ]} ({ path_str } ): { data ['text' ]} " )
110109 else :
111110 print (json .dumps (ev .payload ))
112111 return True
112+ process_event_message .print_snr = False
113113
114114async def handle_message (event ):
115115 """ Process incoming message events """
@@ -136,8 +136,11 @@ def make_completion_dict(contacts):
136136 "infos" : None ,
137137 "advert" : None ,
138138 "floodadv" : None ,
139- "set" : {"pin" : None , "radio" : None , "tuning" : None , "tx" : None , "name" : None , "lat" : None , "lon" : None , "coords" : None },
140- "get" : {"name" : None , "bat" : None , "coords" : None , "radio" : None , "tx" : None },
139+ "set" : {"pin" : None , "radio" : None , "tuning" : None , "tx" : None ,
140+ "name" : None , "lat" : None , "lon" : None , "coords" : None ,
141+ "print_snr" : {"on" :None , "off" : None }},
142+ "get" : {"name" : None , "bat" : None , "coords" : None , "radio" : None ,
143+ "tx" : None , "print_snr" : None },
141144 "reboot" : None ,
142145 "card" : None ,
143146 "login" : None ,
@@ -433,7 +436,13 @@ async def next_cmd(mc, cmds, json_output=False):
433436 name <name> : node name
434437 lat <lat> : latitude
435438 lon <lon> : longitude
436- coords <lat,lon> : coordinates""" )
439+ coords <lat,lon> : coordinates
440+ print_snr <on/off> : toggle snr display in messages""" )
441+ case "print_snr" :
442+ if cmds [2 ] == "on" :
443+ process_event_message .print_snr = True
444+ else :
445+ process_event_message .print_snr = False
437446 case "pin" :
438447 res = await mc .commands .set_devicepin (cmds [2 ])
439448 logger .debug (res )
@@ -522,11 +531,17 @@ async def next_cmd(mc, cmds, json_output=False):
522531 match cmds [1 ]:
523532 case "help" :
524533 print ("""Gets parameters from node
525- name : node name
526- bat : battery level in mV
527- coords : adv coordinates
528- radio : radio parameters
529- tx : tx power""" )
534+ name : node name
535+ bat : battery level in mV
536+ coords : adv coordinates
537+ radio : radio parameters
538+ tx : tx power
539+ print_snr : snr display in messages""" )
540+ case "print_snr" :
541+ if json_output :
542+ print (json .dumps ({"print_snr" : process_event_message .print_snr }))
543+ else :
544+ print (f"{ "on" if process_event_message .print_snr else "off" } " )
530545 case "name" :
531546 if json_output :
532547 print (json .dumps (mc .self_info ["name" ]))
0 commit comments