@@ -138,10 +138,10 @@ def get_noise(self, radio):
138138 noisel = (response .json ()["result" ])
139139 return int (noisel [0 ])
140140
141- # Get Neighbor RSSI == nbr_rssi(nodeip, localnode )
142- def get_rssi (self , local , remote ):
143- data = '{"jsonrpc":"2.0","method":"nbr_rssi","params":["' + remote .node + '"],"id":"sbkb5u0c"}'
144- response = self .make_request (local , post_data = data )
141+ # Get Neighbor RSSI == nbr_rssi(nodeip, gndnode )
142+ def get_rssi (self , gnd , air ):
143+ data = '{"jsonrpc":"2.0","method":"nbr_rssi","params":["' + air .node + '"],"id":"sbkb5u0c"}'
144+ response = self .make_request (gnd , post_data = data )
145145 nbr_rssi = (response .json ()["result" ])
146146 return nbr_rssi
147147
@@ -160,17 +160,17 @@ def get_gps_state(self, radio):
160160 return gpsstat
161161
162162 # Get max throughput between nodes
163- def get_throughput (self , local , remote ):
164- data = '{"jsonrpc":"2.0","method":"link_throughput","params":["' + remote .node + '", "1"],"id":"sbkb5u0c"}'
165- response = self .make_request (local , post_data = data )
163+ def get_throughput (self , gnd , air ):
164+ data = '{"jsonrpc":"2.0","method":"link_throughput","params":["' + air .node + '", "1"],"id":"sbkb5u0c"}'
165+ response = self .make_request (gnd , post_data = data )
166166 nbr_tp = (response .json ()["result" ])
167167 nbr_tp = (nbr_tp )[0 ]
168168 return nbr_tp
169169
170170 # Returns the TX MCS
171- def get_neighbor_mcs (self , local , remote ):
172- data = '{"jsonrpc":"2.0","method":"nbr_mcs","params":["' + remote .node + '"],"id":"sbkb5u0c"}'
173- response = self .make_request (local , post_data = data )
171+ def get_neighbor_mcs (self , gnd , air ):
172+ data = '{"jsonrpc":"2.0","method":"nbr_mcs","params":["' + air .node + '"],"id":"sbkb5u0c"}'
173+ response = self .make_request (gnd , post_data = data )
174174 nbr_mcs = (response .json ()["result" ])
175175 nbr_mcs = (nbr_mcs )[0 ]
176176 # print(data)
@@ -186,9 +186,9 @@ def make_request(self, radio, post_data):
186186 return result
187187
188188 # Returns the RX MCS
189- def get_neighbor_mcs_rx (self , local , remote ):
190- data = '{"jsonrpc":"2.0","method":"nbr_mcs_rx","params":["' + remote .node + '"],"id":"sbkb5u0c"}'
191- response = self .make_request (local , data = data )
189+ def get_neighbor_mcs_rx (self , gnd , air ):
190+ data = '{"jsonrpc":"2.0","method":"nbr_mcs_rx","params":["' + air .node + '"],"id":"sbkb5u0c"}'
191+ response = self .make_request (gnd , data = data )
192192 nbr_mcs_rx = (response .json ()["result" ])
193193 nbr_mcs_rx = (nbr_mcs_rx )[0 ]
194194 # print(data)
@@ -212,77 +212,77 @@ def get_radio_data(self):
212212 airip = self .silvus_settings .air_ip
213213 airport = self .silvus_settings .air_port
214214
215- if len (gndip .split ('.' )) != 4 :
216- return
217- if len (airip .split ('.' )) != 4 :
218- return
219- if gndport <= 0 :
220- return
221- if airport <= 0 :
222- return
223-
224215 class Radio ():
225- def __init__ (self , remote_ip , remote_port , remote_node ):
226- self .ip = remote_ip
227- self .port = remote_port
228- self .node = remote_node
229-
230- localnode = str (self .silvus_settings .gnd_node )
231- remotenode = str (self .silvus_settings .air_node )
232-
233- remote = Radio (airip , airport , remotenode )
234- local = Radio (gndip , gndport , localnode )
235-
236- try :
237- self .values ['TXMCS' ] = float (self .get_neighbor_mcs (local , remote ))
238- except Exception :
239- pass
240- try :
241- self .values ['RXMCS' ] = float (self .get_neighbor_mcs_rx (local , remote ))
242- except Exception :
243- pass
244- try :
245- rssi = self .get_rssi (local , remote )
246- if len (rssi ) >= 4 :
247- self .values ['TXRSSI1' ] = float (rssi [0 ])
248- self .values ['TXRSSI2' ] = float (rssi [1 ])
249- self .values ['TXRSSI3' ] = float (rssi [2 ])
250- self .values ['TXRSSI4' ] = float (rssi [3 ])
251- except Exception :
252- pass
253-
254- try :
255- rssi = self .get_rssi (remote , local )
256- if len (rssi ) >= 4 :
257- self .values ['RXRSSI1' ] = float (rssi [0 ])
258- self .values ['RXRSSI2' ] = float (rssi [1 ])
259- self .values ['RXRSSI3' ] = float (rssi [2 ])
260- self .values ['RXRSSI4' ] = float (rssi [3 ])
261- except Exception :
262- pass
216+ def __init__ (self , ip , port , node ):
217+ self .ip = ip
218+ self .port = port
219+ self .node = node
220+
221+ gnd = None
222+ air = None
223+ if len (gndip .split ('.' )) == 4 and gndport is not None and gndport > 0 :
224+ gndnode = str (self .silvus_settings .gnd_node )
225+ gnd = Radio (gndip , gndport , gndnode )
226+
227+ if len (airip .split ('.' )) == 4 and airport is not None and airport > 0 :
228+ airnode = str (self .silvus_settings .air_node )
229+ air = Radio (airip , airport , airnode )
230+
231+ if gnd and air :
232+ try :
233+ self .values ['TXMCS' ] = float (self .get_neighbor_mcs (gnd , air ))
234+ except Exception :
235+ pass
236+ try :
237+ self .values ['RXMCS' ] = float (self .get_neighbor_mcs_rx (gnd , air ))
238+ except Exception :
239+ pass
240+ try :
241+ rssi = self .get_rssi (gnd , air )
242+ if len (rssi ) >= 4 :
243+ self .values ['TXRSSI1' ] = float (rssi [0 ])
244+ self .values ['TXRSSI2' ] = float (rssi [1 ])
245+ self .values ['TXRSSI3' ] = float (rssi [2 ])
246+ self .values ['TXRSSI4' ] = float (rssi [3 ])
247+ except Exception :
248+ pass
249+ try :
250+ rssi = self .get_rssi (air , gnd )
251+ if len (rssi ) >= 4 :
252+ self .values ['RXRSSI1' ] = float (rssi [0 ])
253+ self .values ['RXRSSI2' ] = float (rssi [1 ])
254+ self .values ['RXRSSI3' ] = float (rssi [2 ])
255+ self .values ['RXRSSI4' ] = float (rssi [3 ])
256+ except Exception :
257+ pass
258+
259+ if gnd :
260+ try :
261+ self .values ['LOCNSE' ] = float (self .get_noise (gnd ))
262+ except Exception as e :
263+ print (f"Exception caught! { e = } " )
264+ pass
265+ if air is not None :
266+ try :
267+ self .values ['REMNSE' ] = float (self .get_noise (air ))
268+ except Exception :
269+ pass
263270
264- try :
265- self .values ['LOCNSE' ] = float (self .get_noise (local ))
266- except Exception as e :
267- print (f"Exception caught! { e = } " )
268- pass
269- try :
270- self .values ['REMNSE' ] = float (self .get_noise (remote ))
271- except Exception :
272- pass
273- try :
274- self .values ['LINKSNR' ] = float (self .network_status (local )[2 ])
275- except Exception :
276- pass
271+ if gnd :
272+ try :
273+ self .values ['LINKSNR' ] = float (self .network_status (gnd )[2 ])
274+ except Exception :
275+ pass
277276
278- try :
279- self .values ['LOCTPUT' ] = float (self .get_throughput (local , remote ))
280- except Exception :
281- pass
282- try :
283- self .values ['REMTPUT' ] = float (self .get_throughput (remote , local ))
284- except Exception :
285- pass
277+ if gnd and air :
278+ try :
279+ self .values ['LOCTPUT' ] = float (self .get_throughput (gnd , air ))
280+ except Exception :
281+ pass
282+ try :
283+ self .values ['REMTPUT' ] = float (self .get_throughput (air , gnd ))
284+ except Exception :
285+ pass
286286
287287 for f in self .values :
288288 self .send_named_float ('SR_' + f , self .values [f ])
0 commit comments