Browse Source

add: libgnss库支持NMEA 4.1中GSA的sysid字段

Wendal Chen 1 năm trước cách đây
mục cha
commit
d21619de23

+ 8 - 0
components/minmea/luat_lib_libgnss.c

@@ -549,6 +549,10 @@ static int l_libgnss_get_gsa_mode0(lua_State *L) {
         lua_pushliteral(L, "vdop");
         push_gnss_value(L, &(frame_gsa.vdop), 0);
         lua_settable(L, -3);
+
+        lua_pushliteral(L, "sysid");
+        lua_pushinteger(L, frame_gsa.sysid);
+        lua_settable(L, -3);
         break;
     }
 
@@ -609,6 +613,10 @@ static int l_libgnss_get_gsa_mode1(lua_State *L) {
         lua_pushliteral(L, "vdop");
         push_gnss_value(L, &(frame_gsa.vdop), 0);
         lua_settable(L, -3);
+
+        lua_pushliteral(L, "sysid");
+        lua_pushinteger(L, frame_gsa.sysid);
+        lua_settable(L, -3);
         
         lua_pushliteral(L, "sats");
         lua_createtable(L, 12, 0);

+ 3 - 2
components/minmea/minmea.c

@@ -466,7 +466,7 @@ bool minmea_parse_gsa(struct minmea_sentence_gsa *frame, const char *sentence)
     // $GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39
     char type[6];
 
-    if (!minmea_scan(sentence, "tciiiiiiiiiiiiifff",
+    if (!minmea_scan(sentence, "tciiiiiiiiiiiiifff;i",
             type,
             &frame->mode,
             &frame->fix_type,
@@ -484,7 +484,8 @@ bool minmea_parse_gsa(struct minmea_sentence_gsa *frame, const char *sentence)
             &frame->sats[11],
             &frame->pdop,
             &frame->hdop,
-            &frame->vdop))
+            &frame->vdop,
+            &frame->sysid))
         return false;
     if (strcmp(type+2, "GSA"))
         return false;

+ 1 - 0
components/minmea/minmea.h

@@ -150,6 +150,7 @@ struct minmea_sentence_gsa {
     struct minmea_float pdop;
     struct minmea_float hdop;
     struct minmea_float vdop;
+    int sysid;
 };
 
 struct minmea_sat_info {