Alexey Edelev 5 vuotta sitten
vanhempi
commit
0e4128d7c0
3 muutettua tiedostoa jossa 53 lisäystä ja 0 poistoa
  1. 28 0
      ubx.c
  2. 5 0
      ubxcfg.h
  3. 20 0
      ubxmessage.h

+ 28 - 0
ubx.c

@@ -1010,6 +1010,34 @@ UBXMsgBuffer getCFG_PM2(UBXCFG_PM2Flags flags, UBXU4_t updatePeriod, UBXU4_t sea
     return buffer;
 }
 
+extern UBXMsgBuffer getCFG_PMS_POLL()
+{
+    int payloadSize = 0;
+    UBXMsgBuffer buffer = createBuffer(payloadSize);
+    UBXMsg* msg = (UBXMsg*)buffer.data;
+    initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_PMS);
+    completeMsg(&buffer, payloadSize);
+    return buffer;
+}
+
+extern UBXMsgBuffer getCFG_PMS(UBXU1_t version,
+                               UBXPMSValue powerSetupValue,
+                               UBXU2_t period,
+                               UBXU2_t onTime)
+{
+    int payloadSize = sizeof(UBXCFG_PMS);
+    UBXMsgBuffer buffer = createBuffer(payloadSize);
+    UBXMsg* msg = (UBXMsg*)buffer.data;
+    initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_PMS);
+    msg->payload.CFG_PMS.version = version;
+    msg->payload.CFG_PMS.powerSetupValue = powerSetupValue;
+    msg->payload.CFG_PMS.period = period;
+    msg->payload.CFG_PMS.onTime = onTime;
+    memset(msg->payload.CFG_PMS.reserved1, 0, sizeof(msg->payload.CFG_PMS));
+    completeMsg(&buffer, payloadSize);
+    return buffer;
+}
+
 UBXMsgBuffer getCFG_PRT_POLL()
 {
     int payloadSize = 0;

+ 5 - 0
ubxcfg.h

@@ -149,6 +149,11 @@ extern UBXMsgBuffer getCFG_PM2(UBXCFG_PM2Flags flags,
                                UBXU4_t gridOffset,
                                UBXU2_t onTime,
                                UBXU2_t minAcqTime);
+extern UBXMsgBuffer getCFG_PMS_POLL();
+extern UBXMsgBuffer getCFG_PMS(UBXU1_t version,
+                               UBXPMSValue powerSetupValue,
+                               UBXU2_t period,
+                               UBXU2_t onTime);
 extern UBXMsgBuffer getCFG_PRT_POLL();
 extern UBXMsgBuffer getCFG_PRT_POLL_OPT(UBXU1_t portId);
 extern UBXMsgBuffer getCFG_PRT_UART();

+ 20 - 0
ubxmessage.h

@@ -584,6 +584,16 @@ typedef enum
     UBXPM2CyclicTrackOperation = 0x01
 } UBXPM2Mode;
 
+typedef enum
+{
+    UBXPMSFullPower = 0x00,
+    UBXPMSBalanced = 0x01,
+    UBXPMSInterval = 0x02,
+    UBXPMSAggressive1Hz = 0x03,
+    UBXPMSAggressive2Hz = 0x04,
+    UBXPMSAggressive4Hz = 0x05,
+    UBXPMSInvalid = 0xFF
+} UBXPMSValue;
 
 typedef enum
 {
@@ -1414,6 +1424,15 @@ typedef struct {
     UBXU4_t reserved11;
 } UBXCFG_PM2;
 
+
+typedef struct {
+    UBXU1_t version;
+    UBXU1_t powerSetupValue;
+    UBXU2_t period;
+    UBXU2_t onTime;
+    UBXU1_t reserved1[2];
+} UBXCFG_PMS;
+
 //typedef struct {
     //No payload
 //} UBXCFG_PRT_POLL;
@@ -2264,6 +2283,7 @@ typedef union
     UBXCFG_NMEA CFG_NMEA;
     UBXCFG_NVS CFG_NVS;
     UBXCFG_PM2 CFG_PM2;
+    UBXCFG_PMS CFG_PMS;
     UBXCFG_PRT_POLL_OPT CFG_PRT_POLL_OPT;
     UBXCFG_PRT CFG_PRT;
     UBXCFG_RATE CFG_RATE;