@@ -4929,6 +4929,31 @@ uint8_t SFE_UBLOX_GNSS::setVal(uint32_t key, uint16_t value, uint8_t layer, uint
4929
4929
return setVal16 (key, value, layer, maxWait);
4930
4930
}
4931
4931
4932
+ // Given an array of data (most likely from a config file) push using valSet
4933
+ uint8_t SFE_UBLOX_GNSS::setVal (uint8_t * value, uint16_t len, uint8_t layer, uint16_t maxWait)
4934
+ {
4935
+ packetCfg.cls = UBX_CLASS_CFG;
4936
+ packetCfg.id = UBX_CFG_VALSET;
4937
+ packetCfg.len = 4 + len; // 4 byte header, *no* key ID, len bytes of raw data
4938
+ packetCfg.startingSpot = 0 ;
4939
+
4940
+ // Clear packet payload
4941
+ memset (payloadCfg, 0 , packetCfg.len );
4942
+
4943
+ payloadCfg[0 ] = 1 ; // Message Version - set to 1
4944
+ payloadCfg[1 ] = layer; // By default we ask for the RAM layer
4945
+
4946
+ // payloadCfg[2] = skipAmt >> 8 * 0; //Position - skip this many key values
4947
+ // payloadCfg[3] = skipAmt >> 8 * 1;
4948
+
4949
+ // Copy data into payload
4950
+ for (uint16_t x = 0 ; x < len ; x++)
4951
+ payloadCfg[4 + x] = value[x];
4952
+
4953
+ // Send VALSET command with this key and value
4954
+ return (sendCommand (&packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
4955
+ }
4956
+
4932
4957
// Given a key, set a 16-bit value
4933
4958
// This function takes a full 32-bit key
4934
4959
// Default layer is all: RAM+BBR+Flash
0 commit comments