summaryrefslogtreecommitdiff
path: root/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-dedup-rx.patch
diff options
context:
space:
mode:
authorAndrii Pientsov <andrii.pientsov@globallogic.com>2020-05-27 15:05:10 +0300
committerAndrii Pientsov <andrii.pientsov@globallogic.com>2020-05-27 15:05:10 +0300
commite919ef1e33c2cb56856cdbd22792a3bc3f36341d (patch)
treeeb08d052d64d0814ea1cfc75664b64be68eaffbb /recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-dedup-rx.patch
parente0d7185cbf41d7921acdb90bcac898f5e9786848 (diff)
downloadmeta-mlinux-atmel-e919ef1e33c2cb56856cdbd22792a3bc3f36341d.tar.gz
meta-mlinux-atmel-e919ef1e33c2cb56856cdbd22792a3bc3f36341d.tar.bz2
meta-mlinux-atmel-e919ef1e33c2cb56856cdbd22792a3bc3f36341d.zip
Remove duplicate LoRa
Diffstat (limited to 'recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-dedup-rx.patch')
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-dedup-rx.patch66
1 files changed, 0 insertions, 66 deletions
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-dedup-rx.patch b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-dedup-rx.patch
deleted file mode 100644
index c368033..0000000
--- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-dedup-rx.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-diff --git a/lora_pkt_fwd/src/lora_pkt_fwd.c b/lora_pkt_fwd/src/lora_pkt_fwd.c
-index 801f28d..c35c64f 100644
---- a/lora_pkt_fwd/src/lora_pkt_fwd.c
-+++ b/lora_pkt_fwd/src/lora_pkt_fwd.c
-@@ -126,8 +126,9 @@ volatile bool quit_sig = false; /* 1 -> application terminates without shutting
- static bool fwd_valid_pkt = true; /* packets with PAYLOAD CRC OK are forwarded */
- static bool fwd_error_pkt = false; /* packets with PAYLOAD CRC ERROR are NOT forwarded */
- static bool fwd_nocrc_pkt = false; /* packets with NO PAYLOAD CRC are NOT forwarded */
-+static bool fwd_best_pkt = true; /* duplicate packets with low SNR are NOT forwarded */
-
- /* network configuration variables */
- static uint64_t lgwm = 0; /* Lora gateway MAC address */
- static char serv_addr[64] = STR(DEFAULT_SERVER); /* address of the server (host name or IPv4/IPv6) */
- static char serv_port_up[8] = STR(DEFAULT_PORT_UP); /* server port for upstream traffic */
-@@ -731,6 +742,12 @@ static int parse_gateway_configuration(const char * conf_file) {
- }
-
- /* packet filtering parameters */
-+ val = json_object_get_value(conf_obj, "best_packet_filter");
-+ if (json_value_get_type(val) == JSONBoolean) {
-+ fwd_best_pkt = (bool)json_value_get_boolean(val);
-+ }
-+ MSG("INFO: duplicate packets received with low SNR will%s be forwarded\n", (!fwd_best_pkt ? "" : " NOT"));
-+
- val = json_object_get_value(conf_obj, "forward_crc_valid");
- if (json_value_get_type(val) == JSONBoolean) {
- fwd_valid_pkt = (bool)json_value_get_boolean(val);
-@@ -1536,6 +1562,38 @@ void thread_up(void) {
- memcpy((void *)(buff_up + buff_index), (void *)"{\"rxpk\":[", 9);
- buff_index += 9;
-
-+ if (fwd_best_pkt && nb_pkt > 1) {
-+ uint32_t check_addr = 0;
-+ uint32_t check_mic = 0;
-+ uint16_t check_fcnt = 0;
-+ float check_snr = -30.0;
-+
-+ for (i=0; i < nb_pkt; ++i) {
-+ p = &rxpkt[i];
-+ if (p->size < 12)
-+ continue;
-+
-+ memcpy(&check_addr, p->payload + 1, 4);
-+ memcpy(&check_fcnt, p->payload + 6, 2);
-+ memcpy(&check_mic, p->payload + p->size - 4, 4);
-+
-+ check_snr = p->snr;
-+
-+ for (j=0; j < nb_pkt; ++j) {
-+ p = &rxpkt[j];
-+
-+ if (p->size >= 12
-+ && memcmp(&check_addr, p->payload + 1, 4) == 0
-+ && memcmp(&check_fcnt, p->payload + 6, 2) == 0
-+ && memcmp(&check_mic, p->payload + p->size - 4, 4) == 0
-+ && p->snr < check_snr) {
-+ // set status of duplicate packets rx'd on wrong channel
-+ p->status = 1;
-+ }
-+ }
-+ }
-+ }
-+
- /* serialize Lora packets metadata and payload */
- pkt_in_dgram = 0;
- for (i=0; i < nb_pkt; ++i) {