Untitled

 avatar
unknown
diff
a year ago
6.5 kB
14
Indexable
diff --git a/libloragw/inc/loragw_spi.h b/libloragw/inc/loragw_spi.h
index 88e4530..29ac5ff 100644
--- a/libloragw/inc/loragw_spi.h
+++ b/libloragw/inc/loragw_spi.h
@@ -32,7 +32,7 @@ License: Revised BSD License, see LICENSE.TXT file include in the project
 #define LGW_SPI_SUCCESS     0
 #define LGW_SPI_ERROR       -1

-#define SPI_SPEED       2000000
+#define SPI_SPEED       8000000

 /* -------------------------------------------------------------------------- */
 /* --- PUBLIC FUNCTIONS PROTOTYPES ------------------------------------------ */
diff --git a/packet_forwarder/Makefile b/packet_forwarder/Makefile
index 2325a47..e911035 100644
--- a/packet_forwarder/Makefile
+++ b/packet_forwarder/Makefile
@@ -27,7 +27,7 @@ RELEASE_VERSION := `cat ../VERSION`
 CC := $(CROSS_COMPILE)gcc
 AR := $(CROSS_COMPILE)ar

-CFLAGS := -O2 -Wall -Wextra -std=c99 -Iinc -I. -I../libtools/inc
+CFLAGS := -Ofast -flto=4 -march=native -Wall -Wextra -std=c99 -Iinc -I. -I../libtools/inc
 VFLAG := -D VERSION_STRING="\"$(RELEASE_VERSION)\""

 ### Constants for Lora concentrator HAL library
diff --git a/packet_forwarder/src/lora_pkt_fwd.c b/packet_forwarder/src/lora_pkt_fwd.c
index 53661de..9c4abb7 100644
--- a/packet_forwarder/src/lora_pkt_fwd.c
+++ b/packet_forwarder/src/lora_pkt_fwd.c
@@ -81,7 +81,7 @@ License: Revised BSD License, see LICENSE.TXT file include in the project
 #define PUSH_TIMEOUT_MS     100
 #define PULL_TIMEOUT_MS     200
 #define GPS_REF_MAX_AGE     30          /* maximum admitted delay in seconds of GPS loss before considering latest GPS sync unusable */
-#define FETCH_SLEEP_MS      10          /* nb of ms waited when a fetch return no packets */
+#define FETCH_SLEEP_MS      1           /* nb of ms waited when a fetch return no packets */
 #define BEACON_POLL_MS      50          /* time in ms between polling of beacon TX status */

 #define PROTOCOL_VERSION    2           /* v1.6 */
@@ -310,6 +310,7 @@ static void usage( void )
     printf("~~~ Available options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
     printf(" -h  print this help\n");
     printf(" -c <filename>  use config file other than 'global_conf.json'\n");
+    printf(" -x ignored\n");
     printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
 }

@@ -370,8 +371,9 @@ static int parse_SX130x_configuration(const char * conf_file) {
     memset(&boardconf, 0, sizeof boardconf); /* initialize configuration structure */
     str = json_object_get_string(conf_obj, "com_type");
     if (str == NULL) {
-        MSG("ERROR: com_type must be configured in %s\n", conf_file);
-        return -1;
+        MSG("ERROR: com_type must be configured in %s, assuming spi\n", conf_file);
+       boardconf.com_type = LGW_COM_SPI;
+        // return -1;
     } else if (!strncmp(str, "SPI", 3) || !strncmp(str, "spi", 3)) {
         boardconf.com_type = LGW_COM_SPI;
     } else if (!strncmp(str, "USB", 3) || !strncmp(str, "usb", 3)) {
@@ -386,8 +388,14 @@ static int parse_SX130x_configuration(const char * conf_file) {
         strncpy(boardconf.com_path, str, sizeof boardconf.com_path);
         boardconf.com_path[sizeof boardconf.com_path - 1] = '\0'; /* ensure string termination */
     } else {
-        MSG("ERROR: com_path must be configured in %s\n", conf_file);
-        return -1;
+       str = json_object_get_string(conf_obj, "spidev_path");
+       if (str != NULL) {
+               strncpy(boardconf.com_path, str, sizeof boardconf.com_path);
+               boardconf.com_path[sizeof boardconf.com_path - 1] = '\0'; /* ensure string termination */
+       } else {
+               MSG("ERROR: com_path must be configured in %s\n", conf_file);
+               return -1;
+       }
     }
     val = json_object_get_value(conf_obj, "lorawan_public"); /* fetch value (if possible) */
     if (json_value_get_type(val) == JSONBoolean) {
@@ -1493,7 +1501,7 @@ int main(int argc, char ** argv)
     float dw_ack_ratio;

     /* Parse command line options */
-    while( (i = getopt( argc, argv, "hc:" )) != -1 )
+    while( (i = getopt( argc, argv, "hxc:" )) != -1 )
     {
         switch( i )
         {
@@ -1506,6 +1514,9 @@ int main(int argc, char ** argv)
             conf_fname = optarg;
             break;

+       case 'x':
+          // ignored
+          break;
         default:
             printf( "ERROR: argument parsing options, use -h option for help\n" );
             usage( );
(END)
-        MSG("ERROR: com_type must be configured in %s\n", conf_file);
-        return -1;
+        MSG("ERROR: com_type must be configured in %s, assuming spi\n", conf_file);
+       boardconf.com_type = LGW_COM_SPI;
+        // return -1;
     } else if (!strncmp(str, "SPI", 3) || !strncmp(str, "spi", 3)) {
         boardconf.com_type = LGW_COM_SPI;
     } else if (!strncmp(str, "USB", 3) || !strncmp(str, "usb", 3)) {
@@ -386,8 +388,14 @@ static int parse_SX130x_configuration(const char * conf_file) {
         strncpy(boardconf.com_path, str, sizeof boardconf.com_path);
         boardconf.com_path[sizeof boardconf.com_path - 1] = '\0'; /* ensure string termination */
     } else {
-        MSG("ERROR: com_path must be configured in %s\n", conf_file);
-        return -1;
+       str = json_object_get_string(conf_obj, "spidev_path");
+       if (str != NULL) {
+               strncpy(boardconf.com_path, str, sizeof boardconf.com_path);
+               boardconf.com_path[sizeof boardconf.com_path - 1] = '\0'; /* ensure string termination */
+       } else {
+               MSG("ERROR: com_path must be configured in %s\n", conf_file);
+               return -1;
+       }
     }
     val = json_object_get_value(conf_obj, "lorawan_public"); /* fetch value (if possible) */
     if (json_value_get_type(val) == JSONBoolean) {
@@ -1493,7 +1501,7 @@ int main(int argc, char ** argv)
     float dw_ack_ratio;

     /* Parse command line options */
-    while( (i = getopt( argc, argv, "hc:" )) != -1 )
+    while( (i = getopt( argc, argv, "hxc:" )) != -1 )
     {
         switch( i )
         {
@@ -1506,6 +1514,9 @@ int main(int argc, char ** argv)
             conf_fname = optarg;
             break;

+       case 'x':
+          // ignored
+          break;
         default:
             printf( "ERROR: argument parsing options, use -h option for help\n" );
             usage( );
Editor is loading...
Leave a Comment