@@ -488,6 +488,8 @@ <h3>Navigation</h3>
488
488
< span class ="c1 "> # This initialisation is executed when the users chooses</ span >
489
489
< span class ="c1 "> # to run as a server</ span >
490
490
< span class ="k "> def</ span > < span class ="nf "> server</ span > < span class ="p "> (</ span > < span class ="n "> configpath</ span > < span class ="p "> ):</ span >
491
+ < span class ="k "> global</ span > < span class ="n "> reticulum</ span >
492
+
491
493
< span class ="c1 "> # We must first initialise Reticulum</ span >
492
494
< span class ="n "> reticulum</ span > < span class ="o "> =</ span > < span class ="n "> RNS</ span > < span class ="o "> .</ span > < span class ="n "> Reticulum</ span > < span class ="p "> (</ span > < span class ="n "> configpath</ span > < span class ="p "> )</ span >
493
495
@@ -544,11 +546,32 @@ <h3>Navigation</h3>
544
546
545
547
546
548
< span class ="k "> def</ span > < span class ="nf "> server_callback</ span > < span class ="p "> (</ span > < span class ="n "> message</ span > < span class ="p "> ,</ span > < span class ="n "> packet</ span > < span class ="p "> ):</ span >
549
+ < span class ="k "> global</ span > < span class ="n "> reticulum</ span >
550
+
547
551
< span class ="c1 "> # Tell the user that we received an echo request, and</ span >
548
552
< span class ="c1 "> # that we are going to send a reply to the requester.</ span >
549
553
< span class ="c1 "> # Sending the proof is handled automatically, since we</ span >
550
554
< span class ="c1 "> # set up the destination to prove all incoming packets.</ span >
551
- < span class ="n "> RNS</ span > < span class ="o "> .</ span > < span class ="n "> log</ span > < span class ="p "> (</ span > < span class ="s2 "> "Received packet from echo client, proof sent"</ span > < span class ="p "> )</ span >
555
+
556
+ < span class ="n "> reception_stats</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span >
557
+ < span class ="k "> if</ span > < span class ="n "> reticulum</ span > < span class ="o "> .</ span > < span class ="n "> is_connected_to_shared_instance</ span > < span class ="p "> :</ span >
558
+ < span class ="n "> reception_rssi</ span > < span class ="o "> =</ span > < span class ="n "> reticulum</ span > < span class ="o "> .</ span > < span class ="n "> get_packet_rssi</ span > < span class ="p "> (</ span > < span class ="n "> packet</ span > < span class ="o "> .</ span > < span class ="n "> packet_hash</ span > < span class ="p "> )</ span >
559
+ < span class ="n "> reception_snr</ span > < span class ="o "> =</ span > < span class ="n "> reticulum</ span > < span class ="o "> .</ span > < span class ="n "> get_packet_snr</ span > < span class ="p "> (</ span > < span class ="n "> packet</ span > < span class ="o "> .</ span > < span class ="n "> packet_hash</ span > < span class ="p "> )</ span >
560
+
561
+ < span class ="k "> if</ span > < span class ="n "> reception_rssi</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
562
+ < span class ="n "> reception_stats</ span > < span class ="o "> +=</ span > < span class ="s2 "> " [RSSI "</ span > < span class ="o "> +</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> reception_rssi</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " dBm]"</ span >
563
+
564
+ < span class ="k "> if</ span > < span class ="n "> reception_snr</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
565
+ < span class ="n "> reception_stats</ span > < span class ="o "> +=</ span > < span class ="s2 "> " [SNR "</ span > < span class ="o "> +</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> reception_snr</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " dBm]"</ span >
566
+
567
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
568
+ < span class ="k "> if</ span > < span class ="n "> packet</ span > < span class ="o "> .</ span > < span class ="n "> rssi</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
569
+ < span class ="n "> reception_stats</ span > < span class ="o "> +=</ span > < span class ="s2 "> " [RSSI "</ span > < span class ="o "> +</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> packet</ span > < span class ="o "> .</ span > < span class ="n "> rssi</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " dBm]"</ span >
570
+
571
+ < span class ="k "> if</ span > < span class ="n "> packet</ span > < span class ="o "> .</ span > < span class ="n "> snr</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
572
+ < span class ="n "> reception_stats</ span > < span class ="o "> +=</ span > < span class ="s2 "> " [SNR "</ span > < span class ="o "> +</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> packet</ span > < span class ="o "> .</ span > < span class ="n "> snr</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " dB]"</ span >
573
+
574
+ < span class ="n "> RNS</ span > < span class ="o "> .</ span > < span class ="n "> log</ span > < span class ="p "> (</ span > < span class ="s2 "> "Received packet from echo client, proof sent"</ span > < span class ="o "> +</ span > < span class ="n "> reception_stats</ span > < span class ="p "> )</ span >
552
575
553
576
554
577
< span class ="c1 "> ##########################################################</ span >
@@ -558,6 +581,8 @@ <h3>Navigation</h3>
558
581
< span class ="c1 "> # This initialisation is executed when the users chooses</ span >
559
582
< span class ="c1 "> # to run as a client</ span >
560
583
< span class ="k "> def</ span > < span class ="nf "> client</ span > < span class ="p "> (</ span > < span class ="n "> destination_hexhash</ span > < span class ="p "> ,</ span > < span class ="n "> configpath</ span > < span class ="p "> ,</ span > < span class ="n "> timeout</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
584
+ < span class ="k "> global</ span > < span class ="n "> reticulum</ span >
585
+
561
586
< span class ="c1 "> # We need a binary representation of the destination</ span >
562
587
< span class ="c1 "> # hash that was entered on the command line</ span >
563
588
< span class ="k "> try</ span > < span class ="p "> :</ span >
@@ -654,6 +679,8 @@ <h3>Navigation</h3>
654
679
< span class ="c1 "> # This function is called when our reply destination</ span >
655
680
< span class ="c1 "> # receives a proof packet.</ span >
656
681
< span class ="k "> def</ span > < span class ="nf "> packet_delivered</ span > < span class ="p "> (</ span > < span class ="n "> receipt</ span > < span class ="p "> ):</ span >
682
+ < span class ="k "> global</ span > < span class ="n "> reticulum</ span >
683
+
657
684
< span class ="k "> if</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> status</ span > < span class ="o "> ==</ span > < span class ="n "> RNS</ span > < span class ="o "> .</ span > < span class ="n "> PacketReceipt</ span > < span class ="o "> .</ span > < span class ="n "> DELIVERED</ span > < span class ="p "> :</ span >
658
685
< span class ="n "> rtt</ span > < span class ="o "> =</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> get_rtt</ span > < span class ="p "> ()</ span >
659
686
< span class ="k "> if</ span > < span class ="p "> (</ span > < span class ="n "> rtt</ span > < span class ="o "> >=</ span > < span class ="mi "> 1</ span > < span class ="p "> ):</ span >
@@ -663,10 +690,30 @@ <h3>Navigation</h3>
663
690
< span class ="n "> rtt</ span > < span class ="o "> =</ span > < span class ="nb "> round</ span > < span class ="p "> (</ span > < span class ="n "> rtt</ span > < span class ="o "> *</ span > < span class ="mi "> 1000</ span > < span class ="p "> ,</ span > < span class ="mi "> 3</ span > < span class ="p "> )</ span >
664
691
< span class ="n "> rttstring</ span > < span class ="o "> =</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> rtt</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " milliseconds"</ span >
665
692
693
+ < span class ="n "> reception_stats</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span >
694
+ < span class ="k "> if</ span > < span class ="n "> reticulum</ span > < span class ="o "> .</ span > < span class ="n "> is_connected_to_shared_instance</ span > < span class ="p "> :</ span >
695
+ < span class ="n "> reception_rssi</ span > < span class ="o "> =</ span > < span class ="n "> reticulum</ span > < span class ="o "> .</ span > < span class ="n "> get_packet_rssi</ span > < span class ="p "> (</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> proof_packet</ span > < span class ="o "> .</ span > < span class ="n "> packet_hash</ span > < span class ="p "> )</ span >
696
+ < span class ="n "> reception_snr</ span > < span class ="o "> =</ span > < span class ="n "> reticulum</ span > < span class ="o "> .</ span > < span class ="n "> get_packet_snr</ span > < span class ="p "> (</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> proof_packet</ span > < span class ="o "> .</ span > < span class ="n "> packet_hash</ span > < span class ="p "> )</ span >
697
+
698
+ < span class ="k "> if</ span > < span class ="n "> reception_rssi</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
699
+ < span class ="n "> reception_stats</ span > < span class ="o "> +=</ span > < span class ="s2 "> " [RSSI "</ span > < span class ="o "> +</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> reception_rssi</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " dBm]"</ span >
700
+
701
+ < span class ="k "> if</ span > < span class ="n "> reception_snr</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
702
+ < span class ="n "> reception_stats</ span > < span class ="o "> +=</ span > < span class ="s2 "> " [SNR "</ span > < span class ="o "> +</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> reception_snr</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " dB]"</ span >
703
+
704
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
705
+ < span class ="k "> if</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> proof_packet</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
706
+ < span class ="k "> if</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> proof_packet</ span > < span class ="o "> .</ span > < span class ="n "> rssi</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
707
+ < span class ="n "> reception_stats</ span > < span class ="o "> +=</ span > < span class ="s2 "> " [RSSI "</ span > < span class ="o "> +</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> proof_packet</ span > < span class ="o "> .</ span > < span class ="n "> rssi</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " dBm]"</ span >
708
+
709
+ < span class ="k "> if</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> proof_packet</ span > < span class ="o "> .</ span > < span class ="n "> snr</ span > < span class ="o "> !=</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
710
+ < span class ="n "> reception_stats</ span > < span class ="o "> +=</ span > < span class ="s2 "> " [SNR "</ span > < span class ="o "> +</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> proof_packet</ span > < span class ="o "> .</ span > < span class ="n "> snr</ span > < span class ="p "> )</ span > < span class ="o "> +</ span > < span class ="s2 "> " dB]"</ span >
711
+
666
712
< span class ="n "> RNS</ span > < span class ="o "> .</ span > < span class ="n "> log</ span > < span class ="p "> (</ span >
667
713
< span class ="s2 "> "Valid reply received from "</ span > < span class ="o "> +</ span >
668
714
< span class ="n "> RNS</ span > < span class ="o "> .</ span > < span class ="n "> prettyhexrep</ span > < span class ="p "> (</ span > < span class ="n "> receipt</ span > < span class ="o "> .</ span > < span class ="n "> destination</ span > < span class ="o "> .</ span > < span class ="n "> hash</ span > < span class ="p "> )</ span > < span class ="o "> +</ span >
669
- < span class ="s2 "> ", round-trip time is "</ span > < span class ="o "> +</ span > < span class ="n "> rttstring</ span >
715
+ < span class ="s2 "> ", round-trip time is "</ span > < span class ="o "> +</ span > < span class ="n "> rttstring</ span > < span class ="o "> +</ span >
716
+ < span class ="n "> reception_stats</ span >
670
717
< span class ="p "> )</ span >
671
718
672
719
< span class ="c1 "> # This function is called if a packet times out.</ span >
0 commit comments