summaryrefslogtreecommitdiff
path: root/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-spi-dev-path.patch
blob: 820bd4f954b47e26b6c6a0eeafcd8c67647c5b9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
diff --git a/lora_pkt_fwd/src/lora_pkt_fwd.c b/lora_pkt_fwd/src/lora_pkt_fwd.c
index 31a3743..a8c8f01 100644
--- a/lora_pkt_fwd/src/lora_pkt_fwd.c
+++ b/lora_pkt_fwd/src/lora_pkt_fwd.c
@@ -119,6 +119,7 @@ static bool fwd_nocrc_pkt = false; /* packets with NO PAYLOAD CRC are NOT forwar
 /* 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 spi_device_path[64] = {0} ; /* custom SPI device path */
 static char serv_port_up[8] = STR(DEFAULT_PORT_UP); /* server port for upstream traffic */
 static char serv_port_down[8] = STR(DEFAULT_PORT_DW); /* server port for downstream traffic */
 static int keepalive_time = DEFAULT_KEEPALIVE; /* send a PULL_DATA request every X seconds, negative = disabled */
@@ -645,6 +646,13 @@ static int parse_gateway_configuration(const char * conf_file) {
         MSG("INFO: server hostname or IP address is configured to \"%s\"\n", serv_addr);
     }
 
+    /* spi device path (optional) */
+    str = json_object_get_string(conf_obj, "spi_device");
+    if (str != NULL) {
+        strncpy(spi_device_path, str, sizeof(spi_device_path)-1);
+        MSG("INFO: SPI device is configured to \"%s\"\n", spi_device_path);
+    }
+
     /* get up and down ports (optional) */
     val = json_object_get_value(conf_obj, "serv_port_up");
     if (val != NULL) {
@@ -1092,6 +1100,11 @@ int main(void)
     }
     freeaddrinfo(result);
 
+    /* set custom SPI device path if configured */
+    if (strlen(spi_device_path) > 0)
+        lgw_spi_set_path(spi_device_path);
+
+
     /* starting the concentrator */
     i = lgw_start();
     if (i == LGW_HAL_SUCCESS) {