RockBLOCK 9704 C Library
Doxygen documentation for the RockBLOCK 9704 C Library.
Loading...
Searching...
No Matches
jspr.h
Go to the documentation of this file.
1#ifndef JSPR_H
2#define JSPR_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <stdio.h>
9#include <stdint.h>
10#include <stdbool.h>
11#include "crossplatform.h"
12
13#define RX_BUFFER_SIZE 8192U
14#define TX_BUFFER_SIZE 8192U
15
16#define JSPR_MAX_TARGET_LENGTH 30U
17#define JSPR_RESULT_CODE_LENGTH 3U
18#define JSPR_MIN_RESPONSE 9U
19#define JSPR_MAX_TARGET_LENGTH 30U
20#define JSPR_MAX_JSON_LENGTH 3500U
21#define JSPR_MAX_SEGMENT_LENGTH 1447U
22#define JSPR_MAX_NUM_API_VERSIONS 2U
23#define JSPR_VERSION_INFO_BUILD_INFO_LEN 50U
24#define JSPR_BOOT_INFO_IMAGE_TYPE_LEN 11U
25#define JSPR_BOOT_INFO_HASH_LEN 65U
26
27#define JSPR_TOPIC_NAME_MAX_LENGTH 57U
28#define JSPR_MAX_TOPICS 20U
29
30#define JSPR_HW_VERSION_MAX_LENGTH 7U
31#define JSPR_SERIAL_NUMBER_MAX_LENGTH 7U
32#define JSPR_IMEI_MAX_LENGTH 16U
33
34#define JSPR_ICCID_MAX_LENGTH 20U
35
63
64typedef struct
65{
66 uint32_t code;
69 uint16_t jsonSize;
71
72typedef struct
73{
74 uint8_t major;
75 uint8_t minor;
76 uint8_t patch;
78
84
91
98
106
114
120
128
139
151
158
165
174
175typedef struct
176{
177 uint16_t topic;
178 uint8_t messageId;
180 uint32_t segmentStart;
182
183typedef struct
184{
185 uint16_t topic;
186 uint8_t messageId;
189
190typedef struct
191{
192 uint16_t topic;
193 uint8_t messageId;
195 uint32_t segmentStart;
199
200typedef struct
201{
203 uint8_t signalBars;
204 int16_t signalLevel;
206
224
231
239
246
256
265
272
273typedef struct
274{
278 int8_t boardTemp;
280
281typedef struct
282{
287
288//internal functions
289int sendJspr(const char * buffer, size_t length);
290bool receiveJspr(jsprResponse_t * response, const char * expectedTarget);
291bool waitForJsprMessage(jsprResponse_t * response, const char * expectedTarget, const uint32_t expectedCode, const uint32_t timeoutSeconds);
292void clearResponse(jsprResponse_t * response);
293bool parseJsprBootInfo(const char * jsprString, jsprBootInfo_t * bootInfo);
294bool parseJsprGetApiVersion(char * jsprString, jsprApiVersion_t * apiVersion);
295bool parseJsprFirmwareInfo(const char * jsprString, jsprFirmwareInfo_t * firmwareInfo);
296bool parseJsprGetSimInterface(char * jsprString, jsprSimInterface_t * simInterface);
297bool parseJsprGetOperationalState(char * jsprString, jsprOperationalState_t * operationalState);
298bool parseJsprPutMessageOriginate(char * jsprString, jsprMessageOriginate_t * messageOriginate);
299bool parseJsprUnsMessageOriginateSegment(char * jsprString, jsprMessageOriginateSegment_t * messageOriginateSegment);
300bool parseJsprUnsMessageTerminate(char * jsprString, jsprMessageTerminate_t * messageTerminate);
301bool parseJsprUnsMessageTerminateSegment(char * jsprString, jsprMessageTerminateSegment_t * messageTerminateSegment);
302bool parseJsprGetSignal(char * jsprString, jsprConstellationState_t * signal);
303bool parseJsprUnsMessageOriginateStatus(char * jsprString, jsprMessageOriginateStatus_t * messageOriginateStatus);
304bool parseJsprUnsMessageTerminateStatus(char * jsprString, jsprMessageTerminateStatus_t * messageTerminateStatus);
305bool parseJsprGetMessageProvisioning(char * jsprString, jsprMessageProvisioning_t * messageProvisioning);
306bool parseJsprGetHwInfo(char * jsprString, jsprHwInfo_t * hwInfo);
307bool parseJsprGetSimStatus(char * jsprString, jsprSimStatus_t * simStatus);
308
309#ifdef __cplusplus
310}
311#endif
312
313#endif
bool receiveJspr(jsprResponse_t *response, const char *expectedTarget)
Definition jspr.c:35
availableSimInterfaces_t
Definition jspr.h:108
@ REMOTE
Definition jspr.h:111
@ NONE
Definition jspr.h:109
@ LOCAL
Definition jspr.h:110
@ INTERNAL
Definition jspr.h:112
void clearResponse(jsprResponse_t *response)
Definition jspr.c:168
#define JSPR_BOOT_INFO_IMAGE_TYPE_LEN
Definition jspr.h:24
#define JSPR_HW_VERSION_MAX_LENGTH
Definition jspr.h:30
bool parseJsprGetHwInfo(char *jsprString, jsprHwInfo_t *hwInfo)
Definition jspr.c:981
#define JSPR_SERIAL_NUMBER_MAX_LENGTH
Definition jspr.h:31
bool parseJsprUnsMessageTerminateStatus(char *jsprString, jsprMessageTerminateStatus_t *messageTerminateStatus)
Definition jspr.c:854
bool parseJsprGetSimInterface(char *jsprString, jsprSimInterface_t *simInterface)
Definition jspr.c:408
bool waitForJsprMessage(jsprResponse_t *response, const char *expectedTarget, const uint32_t expectedCode, const uint32_t timeoutSeconds)
Definition jspr.c:140
jsprBootSource_t
Definition jspr.h:86
@ JSPR_BOOT_SOURCE_FALLBACK
Definition jspr.h:89
@ JSPR_BOOT_SOURCE_UNKNOWN
Definition jspr.h:87
@ JSPR_BOOT_SOURCE_PRIMARY
Definition jspr.h:88
bool parseJsprUnsMessageTerminate(char *jsprString, jsprMessageTerminate_t *messageTerminate)
Definition jspr.c:630
bool parseJsprGetOperationalState(char *jsprString, jsprOperationalState_t *operationalState)
Definition jspr.c:453
#define JSPR_TOPIC_NAME_MAX_LENGTH
Definition jspr.h:27
#define JSPR_MAX_TOPICS
Definition jspr.h:28
jsprTopicPriority_t
Definition jspr.h:248
@ MEDIUM_PRIORITY
Definition jspr.h:253
@ SAFETY_3
Definition jspr.h:251
@ SAFETY_2
Definition jspr.h:250
@ HIGH_PRIORITY
Definition jspr.h:252
@ LOW_PRIORITY
Definition jspr.h:254
@ SAFETY_1
Definition jspr.h:249
bool parseJsprGetSimStatus(char *jsprString, jsprSimStatus_t *simStatus)
Definition jspr.c:1020
bool parseJsprUnsMessageOriginateStatus(char *jsprString, jsprMessageOriginateStatus_t *messageOriginateStatus)
Definition jspr.c:762
#define JSPR_BOOT_INFO_HASH_LEN
Definition jspr.h:25
#define JSPR_MAX_JSON_LENGTH
Definition jspr.h:20
#define JSPR_IMEI_MAX_LENGTH
Definition jspr.h:32
availableOperationalStates_t
Definition jspr.h:130
@ RF_SCAN
Definition jspr.h:135
@ ACTIVE
Definition jspr.h:132
@ INACTIVE
Definition jspr.h:131
@ HW_SELF_TEST
Definition jspr.h:134
@ LOOPBACK
Definition jspr.h:136
@ FAULT
Definition jspr.h:137
@ CAL_TEST
Definition jspr.h:133
#define JSPR_MAX_TARGET_LENGTH
Definition jspr.h:16
responseCodes
Definition jspr.h:37
@ JSPR_RC_UNAUTHORIZED
Definition jspr.h:49
@ JSPR_RC_INVALID_RADIO_PATH
Definition jspr.h:55
@ JSPR_RC_INVALID_CHANNEL
Definition jspr.h:52
@ JSPR_RC_OPERATION_NOT_ALLOWED
Definition jspr.h:46
@ JSPR_RC_BAD_JSON
Definition jspr.h:47
@ JSPR_RC_INVALID_TRANSMIT_POWER
Definition jspr.h:59
@ JSPR_RC_WAKE_XCVR_IN_INVALID
Definition jspr.h:51
@ JSPR_RC_CONFIGURATION_ALREADY_SET
Definition jspr.h:42
@ JSPR_RC_API_VERSION_NOT_SELECTED
Definition jspr.h:40
@ JSPR_RC_SIM_NOT_CONFIGURED
Definition jspr.h:50
@ JSPR_RC_UNSUPPORTED_REQUEST_TYPE
Definition jspr.h:41
@ JSPR_RC_CRASH_DUMP_NOT_AVAILABLE
Definition jspr.h:56
@ JSPR_RC_INVALID_ACTION
Definition jspr.h:53
@ JSPR_RC_COMMAND_TOO_LONG
Definition jspr.h:43
@ JSPR_RC_SERIAL_PORT_ERROR
Definition jspr.h:61
@ JSPR_RC_FEATURE_NOT_SUPPORTED_BY_HARDWARE
Definition jspr.h:57
@ JSPR_RC_HARDWARE_NOT_CONFIGURED
Definition jspr.h:54
@ JSPR_RC_NO_ERROR
Definition jspr.h:38
@ JSPR_RC_INVALID_BURST_TYPE
Definition jspr.h:60
@ JSPR_RC_NOT_PROVISIONED
Definition jspr.h:58
@ JSPR_RC_COMMAND_MALFORMED
Definition jspr.h:45
@ JSPR_RC_UNSOLICITED_MESSAGE
Definition jspr.h:39
@ JSPR_RC_UNKNOWN_TARGET
Definition jspr.h:44
@ JSPR_RC_REQUEST_FAILED
Definition jspr.h:48
operationalStateReason_t
Definition jspr.h:141
@ LOW_SUPPLY_VOLTAGE
Definition jspr.h:148
@ HARDWARE_SELF_TEST_FAILURE
Definition jspr.h:143
@ NORMAL
Definition jspr.h:142
@ VAM_APP_FAILED_ACK_INTERFACE_TRANSITION_FLOWING
Definition jspr.h:146
@ INVALID_HARDWARE
Definition jspr.h:147
@ MFRTEST_USED_INCORRECTLY
Definition jspr.h:149
@ RF_POWER_PROTECTION_FAULT
Definition jspr.h:145
@ TEMPERATURE_FAULT
Definition jspr.h:144
bool parseJsprBootInfo(const char *jsprString, jsprBootInfo_t *bootInfo)
Definition jspr.c:176
bool parseJsprUnsMessageTerminateSegment(char *jsprString, jsprMessageTerminateSegment_t *messageTerminateSegment)
Definition jspr.c:670
#define JSPR_ICCID_MAX_LENGTH
Definition jspr.h:34
bool parseJsprUnsMessageOriginateSegment(char *jsprString, jsprMessageOriginateSegment_t *messageOriginateSegment)
Definition jspr.c:582
messageOriginateResponses_t
Definition jspr.h:160
@ SUBSCRIPTION_INVALID
Definition jspr.h:162
@ MESSAGE_ACCEPTED
Definition jspr.h:161
@ MESSAGE_DISCARDED_ON_OVERFLOW
Definition jspr.h:163
bool parseJsprGetSignal(char *jsprString, jsprConstellationState_t *signal)
Definition jspr.c:725
jsprFinalMoStatus_t
Definition jspr.h:208
@ MESSAGE_DISCARDED_ON_OVERFLOW_MOS
Definition jspr.h:210
@ NETWORK_ERROR_MOS
Definition jspr.h:215
@ MESSAGE_CANCELLED_IN_TRANSIT_MOS
Definition jspr.h:217
@ SUBSCRIPTION_INVALID_MOS
Definition jspr.h:218
@ PROTOCOL_ERROR_MOS
Definition jspr.h:219
@ CRC_ERROR_IN_TRANSFER_MOS
Definition jspr.h:221
@ MESSAGE_TRANSFER_TIMEOUT_MOS
Definition jspr.h:212
@ MESSAGE_CANCELLED_PRE_TRANSIT_MOS
Definition jspr.h:216
@ USER_SUPPLIED_CRC_ERROR_MOS
Definition jspr.h:222
@ SEGMENT_NOT_SUPPLIED_MOS
Definition jspr.h:213
@ MO_ACK_RECEIVED_MOS
Definition jspr.h:209
@ MESSAGE_EXPIRED_MOS
Definition jspr.h:211
@ MESSAGE_DROPPED_LOCAL_CRC_ERROR_MOS
Definition jspr.h:220
@ SEGMENT_INCORRECT_MOS
Definition jspr.h:214
bool parseJsprGetApiVersion(char *jsprString, jsprApiVersion_t *apiVersion)
Definition jspr.c:259
bool parseJsprPutMessageOriginate(char *jsprString, jsprMessageOriginate_t *messageOriginate)
Definition jspr.c:521
jsprFinalMtStatus_t
Definition jspr.h:233
@ COMPLETE
Definition jspr.h:234
@ CRC_ERROR_IN_TRANSFER
Definition jspr.h:237
@ MESSAGE_TIMED_OUT
Definition jspr.h:235
@ MESSAGE_CANCELLED
Definition jspr.h:236
#define JSPR_VERSION_INFO_BUILD_INFO_LEN
Definition jspr.h:23
#define JSPR_MAX_NUM_API_VERSIONS
Definition jspr.h:22
bool parseJsprFirmwareInfo(const char *jsprString, jsprFirmwareInfo_t *firmwareInfo)
Definition jspr.c:318
bool parseJsprGetMessageProvisioning(char *jsprString, jsprMessageProvisioning_t *messageProvisioning)
Definition jspr.c:906
#define JSPR_MAX_SEGMENT_LENGTH
Definition jspr.h:21
int sendJspr(const char *buffer, size_t length)
Definition jspr.c:20
jsprSimStatus_t simStatus
Definition rockblock_9704.c:38
jsprHwInfo_t hwInfo
Definition rockblock_9704.c:37
jsprFirmwareInfo_t firmwareInfo
Definition rockblock_9704.c:39
Definition jspr.h:100
bool activeVersionSet
Definition jspr.h:103
jsprDottedVersion_t activeVersion
Definition jspr.h:104
uint8_t supportedVersionCount
Definition jspr.h:102
Definition jspr.h:93
jsprBootSource_t bootSource
Definition jspr.h:95
jsprVersionInfo_t versionInfo
Definition jspr.h:96
Definition jspr.h:201
uint8_t signalBars
Definition jspr.h:203
int16_t signalLevel
Definition jspr.h:204
bool constellationVisible
Definition jspr.h:202
Definition jspr.h:73
uint8_t minor
Definition jspr.h:75
uint8_t patch
Definition jspr.h:76
uint8_t major
Definition jspr.h:74
Definition jspr.h:122
jsprBootSource_t slot
Definition jspr.h:123
jsprVersionInfo_t versionInfo
Definition jspr.h:125
bool validity
Definition jspr.h:124
Definition jspr.h:274
int8_t boardTemp
Definition jspr.h:278
Definition jspr.h:176
uint16_t segmentLength
Definition jspr.h:179
uint8_t messageId
Definition jspr.h:178
uint32_t segmentStart
Definition jspr.h:180
uint16_t topic
Definition jspr.h:177
Definition jspr.h:226
uint8_t messageId
Definition jspr.h:228
uint16_t topic
Definition jspr.h:227
jsprFinalMoStatus_t finalMoStatus
Definition jspr.h:229
Definition jspr.h:167
bool messageIdSet
Definition jspr.h:171
uint8_t messageId
Definition jspr.h:170
uint8_t requestReference
Definition jspr.h:169
messageOriginateResponses_t messageResponse
Definition jspr.h:172
uint16_t topic
Definition jspr.h:168
Definition jspr.h:267
uint8_t topicCount
Definition jspr.h:269
bool provisioningSet
Definition jspr.h:270
Definition jspr.h:191
uint32_t segmentStart
Definition jspr.h:195
uint8_t messageId
Definition jspr.h:193
uint16_t topic
Definition jspr.h:192
size_t dataLength
Definition jspr.h:197
uint16_t segmentLength
Definition jspr.h:194
Definition jspr.h:241
uint16_t topic
Definition jspr.h:242
jsprFinalMtStatus_t finalMtStatus
Definition jspr.h:244
uint8_t messageId
Definition jspr.h:243
Definition jspr.h:184
uint8_t messageId
Definition jspr.h:186
uint32_t messageLengthMax
Definition jspr.h:187
uint16_t topic
Definition jspr.h:185
Definition jspr.h:153
operationalStateReason_t reason
Definition jspr.h:155
availableOperationalStates_t operationalState
Definition jspr.h:156
bool operationalStateSet
Definition jspr.h:154
Definition jspr.h:258
uint16_t topicId
Definition jspr.h:259
uint8_t maxQueueDepth
Definition jspr.h:263
uint32_t discardTimeSeconds
Definition jspr.h:262
jsprTopicPriority_t priority
Definition jspr.h:261
Definition jspr.h:65
uint16_t jsonSize
Definition jspr.h:69
uint32_t code
Definition jspr.h:66
Definition jspr.h:116
availableSimInterfaces_t iface
Definition jspr.h:118
bool ifaceSet
Definition jspr.h:117
Definition jspr.h:282
bool cardPresent
Definition jspr.h:283
bool simConnected
Definition jspr.h:284
Definition jspr.h:80
jsprDottedVersion_t version
Definition jspr.h:81