Device Manager (Ceefax)
As used by RockREMOTE.
Structure
As found in LingoMT or LingoMO.
ceefaxMessages- an encoded option in LingoMT or decoded in LingoMOmessage[]- array containing one or more messagesid- id string to be returned by responsestatus- boolean indicating success of request- one of the following:
- connectionStateRequest
- connectionState
- getWanRequest
- getWanResponse
- updateWanRequest
- updateWanResponse
- getLanInterfaceRequest
- getLanInterfaceResponse
- updateLanInterfaceRequest
- updateLanInterfaceResponse
- getWifiInterfaceRequest
- getWifiInterfaceResponse
- updateWifiInterfaceRequest
- updateWifiInterfaceResponse
- getLocalDevicesRequest
- getLocalDevicesResponse
- upsertLocalDeviceRequest
- upsertLocalDevicesResponse
- deleteLocalDeviceRequest
- deleteLocalDeviceResponse
- getNATConfigRequest
- getNATConfigResponse
- updateNATConfigRequest
- updateNATConfigResponse
- getSerialSettingsRequest
- getSerialSettingsResponse
- updateSerialSettingsRequest
- updateSerialSettingsResponse
- setClientStatusRequest
- setClientStatusResponse
- getSystemInfoRequest
- getSystemInfoResponse
- configExportRequest
- configExportResponse
- configImportRequest
- configImportResponse
- logExportRequest
- logExportResponse
- setLogConfigRequest
- setLogConfigResponse
- getLogConfigRequest
- getLogConfigResponse
- passwordUpdateRequest
- passwordUpdateResponse
- getCellularRequest
- getCellularResponse
- cellularUpdateRequest
- cellularUpdateResponse
- getSmartConnectionRequest
- getSmartConnectionResponse
- smartConnectionUpdateRequest
- smartConnectionUpdateResponse
- rebootRequest
- rebootResponse
- pingRequest
- pingResponse
- locationRequest
- locationResponse
- lastKnownLocationRequest
- lastKnownLocationResponse
- unsolicitedEvent
- unsolicitedEventConfigUpdateRequest
- unsolicitedEventConfigUpdateResponse
- unsolicitedEventConfigRequest
- unsolicitedEventConfigResponse
- fileTransferStartUploadRequest
- fileTransferStartUploadResponse
- fileTransferStartDownloadRequest
- fileTransferStartDownloadResponse
- fileTransferBlockRequest
- fileTransferBlockResponse
- fileTransferRetryBlockRequest
- fileTransferFinishedRequest
- fileTransferFinishedResponse
- fileTransferAbortRequest
- fileTransferAbortResponse
- setGnssConfigRequest
- setGnssConfigResponse
- getGnssConfigRequest
- getGnssConfigResponse
- updateSleepConfigRequest
- updateSleepConfigResponse
- getSleepConfigRequest
- getSleepConfigResponse
- getIdiotConfigRequest
- getIdiotConfigResponse
- setIdiotConfigRequest
- setIdiotConfigResponse
- imtRequest
- imtResponse
- updateGpioRequest
- updateGpioResponse
- getGpioConfigRequest
- getGpioConfigResponse
- getGpioStateRequest
- getGpioStateResponse
- getImtConfigRequest
- getImtConfigResponse
- updateImtConfigRequest
- updateImtConfigResponse
- getImtStateRequest
- getImtStateResponse
- clearImtMoQueueRequest
- clearImtMoQueueResponse
- eventLogRequest
- eventLogResponse
- ceefaxGetFTPConfigRequest
- ceefaxGetFTPConfigResponse
- ceefaxUpdateFTPConfigRequest
- ceefaxUpdateFTPConfigResponse
- ceefaxUpdateFTPPasswordRequest
- ceefaxUpdateFTPPasswordResponse
- ceefaxFTPCommandRequest
- ceefaxFTPCommandResponse
- ceefaxGetGlobalRulesRequest
- ceefaxGetGlobalRulesResponse
- ceefaxUpdateGlobalRulesRequest
- ceefaxUpdateGlobalRulesResponse
- ceefaxRawIMTMoStatus
- ceefaxSendRawImtRequest
- ceefaxSendRawImtResponse
- ceefaxGetRawImtRequest
- ceefaxGetRawImtResponse
- ceefaxGetRawImtStatusRequest
- ceefaxGetRawImtStatusResponse
- ceefaxCommandRawImtRequest
- ceefaxCommandRawImtResponse
- ceefaxAckRawImtRequest
- ceefaxAckRawImtResponse
- ceefaxListRawImtTopicsRequest
- ceefaxListRawImtTopicsResponse
- ceefaxGetWireguardConfigRequest
- ceefaxGetWireguardconfigResponse
- ceefaxUpdateWireguardConfigRequest
- ceefaxUpdateWireguardConfigResponse
- ceefaxGetOmniConfigRequest
- ceefaxGetOmniConfigResponse
- ceefaxUpdateOmniConfigRequest
- ceefaxUpdateOmniConfigResponse
- ceefaxGetPersistentConfigRequest
- ceefaxGetPersistentConfigResponse
Connection State
Connection State Request
{
"connectionStateRequest": {}
}
Connection State
{
"connectionState": {
"state": "CONNECTED",
"duration": 30,
"Transport": "IRIDIUM",
"rxBytes": 200,
"txBytes": 70,
"wgUp": true
}
}
State options:
CONNECTEDACTIVEDISCONNECTED
Transport options:
NO_TRANSPORTIRIDIUMCELLULARWIFI
WAN
Get WAN Request
{
"getWanRequest": {}
}
Get WAN Response
{
"getWanResponse": {
"status": true,
"wan": {}
}
}
Parameter wan is a Ceefax WAN JSON object.
Update WAN Request
{
"updateWanRequest": {
"wan": {}
}
}
Parameter wan is a Ceefax WAN JSON object.
Update WAN Response
{
"updateWanResponse": {
"status": false,
"errors": ["TOO_MANY_NTP_SERVERS"]
}
}
Error options are:
UNKNOWNTOO_MANY_NTP_SERVERS
LAN / WIFI
Get LAN Interface Request
{
"getLanInterfaceRequest": {}
}
Get LAN Interface Response
{
"getLanInterfaceResponse": {
"lan": {},
"status": true
}
}
Parameter lan is a Ceefax LAN Interface JSON object.
Update LAN Interface Request
{
"updateLanInterfaceRequest": {
"lan": {}
}
}
Parameter lan is a Ceefax LAN Interface JSON object.
Update LAN Interface Response
{
"updateLanInterfaceResponse": {
"status": false,
"errors": ["INVALID_IP"]
}
}
Error options are:
INVALID_IPINVALID_SUBNETCONFLICTING_IPINVALID_DHCP_RANGE
Get Wi-Fi Interface Request
{
"getWifiInterfaceRequest": {}
}
Get Wi-Fi Interface Response
{
"getWifiInterfaceResponse": {
"status": true,
"wifi": {},
"wifiInterfacePresent": true
}
}
Parameter wifi is a Ceefax Wi-Fi Interface JSON object.
Update Wi-Fi Interface Request
{
"updateWifiInterfaceRequest": {
"wifi": {}
}
}
Parameter wifi is a Ceefax Wi-Fi Interface JSON object.
Update Wi-Fi Interface Response
{
"updateWifiInterfaceResponse": {
"status": false,
"errors": ["NO_WIFI_INTERFACE"]
}
}
Error options are:
NO_WIFI_INTERFACEINVALID_MODEINVALID_SSIDINVALID_PASSPHRASEINVALID_CHANNEL
Local Devices
Get Local Devices Request
{
"getLocalDevicesRequest": {}
}
Get Local Devices Response
{
"getLocalDevicesResponse": {
"status": true,
"devices": []
}
}
Parameter devices is an array of Ceefax Local Device JSON objects.
Upsert Local Device Request
{
"upsertLocalDeviceRequest": {
"device": {}
}
}
Parameter device is a Ceefax Local Device JSON object.
Upsert Local Device Response
{
"upsertLocalDevicesResponse": {
"status": false,
"errors": ["NON_EXISTENT_ID"],
"device": {}
}
}
Parameter device is a Ceefax Local Device JSON object.
Error options are:
NON_EXISTENT_IDINVALID_NAMEDUPLICATE_NAMEINVALID_IPDUPLICATE_IPINVALID_MACDUPLICATE_MACINVALID_OUT_PROTOCOLINVALID_OUT_IPINVALID_OUT_PORTINVALID_PORTF_IFACEINVALID_PORTF_PROTOCOLINVALID_PORTF_PORTNET_PORT_ALREADY_USED- Validation error to indicate if the RockREMOTE knows this port is already usedINVALID_HOSTNAME- The given string has invalid characters to be a hostnameLOCAL_DNS_NOT_SET- If a Hostname is used them allow local DNS needs to be enabled, this error is returned if that isn't the caseLOCAL_DNS_NOT_SUPPORTED_USE_GLOBAL- Local DNS is not supported on revisioned and the global option should be used.KEEP_ALIVE_PROTO_INVALIDKEEP_ALIVE_INTERVAL_TOO_SMALLKEEP_ALIVE_INTERVAL_TOO_BIGKEEP_ALIVE_PORT_INVALID
Delete Local Device Request
{
"deleteLocalDeviceRequest": {
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
}
Delete Local Device Response
{
"deleteLocalDeviceResponse": {
"status": false,
"errors": ["NON_EXISTENT_ID"],
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
}
NAT
Get NAT Config Request
{
"getNATConfigRequest": {}
}
Get NAT Config Response
{
"getNATConfigResponse": {
"status": true,
"natConfig": {
"nat1to1": [
{
"iface": "IFACE_ETHERNET",
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
]
}
}
}
Iface options:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD
Update NAT Config Request
{
"updateNATConfigRequest": {
"natConfig": {
"nat1to1": [
{
"iface": "IFACE_ETHERNET",
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
]
}
}
}
Iface options:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD
Update NAT Config Response
{
"updateNATConfigResponse": {
"status": false,
"errors": ["DUPLICATE_NAT1TO1_INTERFACE"]
}
}
Error options:
DUPLICATE_NAT1TO1_INTERFACENON_EXISTENT_NAT1TO1_DEVICE_ID
Serial
Get Serial Settings Request
{
"getSerialSettingsRequest": {}
}
Get Serial Settings Response
{
"getSerialSettingsResponse": {
"status": true,
"settings": {},
"capabilities": {
"serialPort": "PORT_A",
"is4xx": true,
"tx": true,
"rx": true,
"rts": true,
"cts": true,
"dtr": true,
"dsr": false,
"dcd": false,
"ri": true
}
}
}
Parameter settings is a Ceefax Serial Settings JSON object.
Serial Port options are:
PORT_APORT_BPORT_CPORT_D
Update Serial Settings Request
{
"updateSerialSettingsRequest": {
"settings": {}
}
}
Parameter settings is a Ceefax Serial Settings JSON object.
Update Serial Settings Response
{
"updateSerialSettingsResponse": {
"status": false,
"errors": ["RX_EOL_INVALID"]
}
}
Error options are:
FLOW_CONTROL_NOT_SUPPORTED_IN_MODE- This flow control is not support in the current mode. i.e. 4xx modes can't support CTS_RTS flow controlFLOW_CONTROL_NOT_SUPPORTED_ON_PORT- This flow control is not supported on this port, i.e. PORT C and DPORT_OUT_OF_RANGEMODE_NOT_SUPPORTED_ON_PORTRX_BUFFER_SIZE_TOO_BIGTOO_MANY_EOL_CHARACTERSRX_IDLE_TIMEOUT_TOO_LONG- 10000 ms, this should be more than enough, setting this to prevent stupid valuesMT_TRANSPORT_INVALID- Returned when MO is configured as server and MT is not off (as it shares the settings with MO)MO_TRANSPORT_INVALID- Returned when MT is configured as client and MO is not off (as it shares the settings with MO)RX_IDLE_TIMEOUT_TOO_SHORT- Less than 100 ms, this fixed and related to our poll tickNET_PORT_ALREADY_USED- Validation error to indicate if the RockREMOTE knows this port is already usedIFACE_INVALID- Specified listen interface is invalidCONNECTION_TIMEOUT_TOO_LONG- If the connection timeout is above 5 minutesCONNECTION_TIMEOUT_TOO_SHORT- If the connection timeout is below 5 secondsCONNECTION_IDLE_TIMEOUT_TOO_LONG- If the connection idle timeout is above 120 minutesCONNECTION_IDLE_TIMEOUT_TOO_SHORT- If the connection idle timeout is below 5 secondsLISTEN_MAX_CLIENTS_TOO_LOW- If the maximum number of clients are 0LISTEN_MAX_CLIENTS_TOO_BIG- If the maximum number of clients are more than 64RX_EOL_INVALID- Error handling the RX EOL escape string
Set Client Status Request
{
"setClientStatusRequest": {
"ready": true
}
}
Set Client Status Response
{
"setClientStatusResponse": {}
}
System Info
Get System Info Request
{
"getSystemInfoRequest": {}
}
Get System Info Response
{
"getSystemInfoResponse": {
"status": true,
"info": {}
}
}
Parameter info is a Ceefax System Info JSON object.
Config
Config Export Request
{
"configExportRequest": {
"stripSecrets": true
}
}
Config Export Response
{
"configExportResponse": {
"status": false,
"errors": ["IMPORT_EXPORT_ALREADY_IN_PROGRESS"],
"path": "/etc/logs/20250324-log.zip"
}
}
Config Import Request
{
"configImportRequest": {
"path": "/etc/store/logs/logs-for-import.zip"
}
}
Absolute path, but must be under xferTmpDir, backend will delete this file (even if error) ZIP file generated from previous export.
Config Import Response
{
"configImportResponse": {
"status": false,
"errors": ["ZIP_ERROR"],
"restarting": false
}
}
Error options:
ZIP_ERRORFORMAT_ERRORIMPORT_EXPORT_ALREADY_IN_PROGRESS
Logging
Log Export Request
{
"logExportRequest": {
"type": "LOG_ALL",
"days": 30
}
}
Set parameter days to 0 for all.
Log Type options:
LOG_ALLLOG_RR_SERVICELOG_IRIDIUM_SIGNALLOG_CELLULAR_SIGNALLOG_RR_SUPPORT_BUNDLE
Log Export Response
{
"logExportResponse": {
"status": true,
"errors": [],
"path": "/etc/logs/log_all.txt"
}
}
Error Options:
IMPORT_EXPORT_ALREADY_IN_PROGRESS
Set Log Config Request
{
"setLogConfigRequest": {
"config": {
"level": "FW_LOG_INFO"
}
}
}
Level options:
FW_LOG_INFOFW_LOG_TRACEFW_LOG_DEBUGFW_LOG_WARNINGFW_LOG_ERROR
Set Log Config Response
{
"setLogConfigResponse": {
"status": true
}
}
Get Log Config Request
{
"getLogConfigRequest": {}
}
Get Log Config Response
{
"getLogConfigResponse": {
"status": true,
"config": {
"level": "FW_LOG_INFO"
}
}
}
Level options:
FW_LOG_INFOFW_LOG_TRACEFW_LOG_DEBUGFW_LOG_WARNINGFW_LOG_ERROR
Password
Password Update Request
{
"passwordUpdateRequest": {
"currentPassword": "weak-password",
"newPassword": "extra-strong-password"
}
}
Password Update Response
{
"passwordUpdateResponse": {
"status": true,
"errors": []
}
}
Error options:
INVALID_CURRENT_PASSWORDINSECURE_NEW_PASSWORD
Cellular
Get Cellular Request
{
"getCellularRequest": {}
}
Get Cellular Response
{
"getCellularResponse": {
"status": true,
"config": {},
"supportedProfiles": ["TELIT_NF_ATT"]
}
}
Parameter config is a Ceefax Cellular Config JSON object.
Supported Profile options:
TELIT_PROFILE_UNKNOWN- This would be return if the telit module is initalising and firmware hasn't been able to request it yetTELIT_NF_ATT- AT&T North AmericaTELIT_NF_VERIZON- Verizon North AmericaTELIT_NF_TMOBILE- T-Mobile North AmericaTELIT_NF_BELL- Bell North AmericaTELIT_NF_TELUS- Telus North AmericaTELIT_AP_TELSTRA- Telstra, only on AP modulesTELIT_GLOBAL- Global configuration
Cellular Update Request
{
"cellularUpdateRequest": {
"config": {}
}
}
Parameter config is a Ceefax Cellular Config JSON object.
Cellular Update Response
{
"cellularUpdateResponse": {
"status": true,
"errors": []
}
}
Error options:
APN_NOT_SETCARRIER_NOT_SUPPORTED
Smart Connection
Get Smart Connection Request
{
"getSmartConnectionRequest": {}
}
Get Smart Connection Response
{
"getSmartConnectionResponse": {
"status": true,
"config": {},
"state": {
"iface": "IFACE_ETHERNET",
"downCount": 1,
"upCount": 2
}
}
}
Parameter config is a Ceefax Smart Connection Config JSON object.
Iface options:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD
Smart Connection Update Request
{
"smartConnectionUpdateRequest": {
"config": {}
}
}
Parameter config is a Ceefax Smart Connection Config JSON object.
Smart Connection Update Response
{
"smartConnectionUpdateResponse": {
"status": true,
"errors": []
}
}
Error options:
INVALID_PRIMARY_IFACEINVALID_SECONDARY_IFACETIMEOUT_TOO_LONGINTERVAL_TOO_LONGDOWN_COUNT_TOO_LARGEUP_COUNT_TOO_LARGENO_TRACKING_IP_SET
System
Reboot Request
{
"rebootRequest": {}
}
Reboot Response
{
"rebootResponse": {
"status": true
}
}
Ping Request
{
"pingRequest": {}
}
Ping Response
{
"pingResponse": {
"status": true,
"version": 146534
}
}
Location Request
{
"locationRequest": {
"fixes": "LOCATION_FIXES_1"
}
}
Fixes options:
LOCATION_FIXES_1LOCATION_FIXES_5LOCATION_FIXES_10LOCATION_FIXES_20
Location Response
{
"locationResponse": {
"status": true,
"location": {},
"errors": []
}
}
The location parameter is a Ceefax Location JSON object.
Error options:
GNSS_MODULE_ERROR- Error occurred enabling the GNSS moduleLOCATION_FIX_FAILED- Failed to aquire a location meeting the requested fixes requirementANOTHER_REQUEST_IN_PROGRESS
Last Known Location Request
{
"lastKnownLocationRequest": {}
}
Last Known Location Response
{
"lastKnownLocationResponse": {
"status": true,
"location": {},
"errors": []
}
}
The location parameter is a Ceefax Location JSON object.
Error options:
NO_FIX_AVAILABLE- The RockREMOTE doesn't have a location fix, if this is case location will not be populated
Events
Unsolicited Event
{
"unsolicitedEvent": {
"at": {},
"location": {},
"pinState": {},
"bootUp": {},
"status": {}
}
}
| Parameter | JSON Object |
|---|---|
at | Rosetta Date Time |
location | Ceefax Location |
pinState | Ceefax Gpio Pin State |
bootUp | Ceefax System Info |
status | Ceefax System Info |
Only one of location, pinState, bootUp or status parameters can be populated.
Unsolicited Event Config Update Request
{
"unsolicitedEventConfigUpdateRequest": {
"config": {}
}
}
Parameter config is a Ceefax Unsolicited Event Config JSON object.
Unsolicited Event Config Update Response
{
"unsolicitedEventConfigUpdateResponse": {
"status": true,
"errors": []
}
}
Error options:
UNKNOWN_EVENT_TYPETIME_NOT_SET- Can't report periodic status as time is unknown, enable NTP or perform a GNSS fixMULTIPLE_STATUS_PERIODS- Multiple EVENT_STATUS have been providedGPIO_NOT_SUPPORTED- When EVENT_GPIO is enabled on Hardware revision 1 (where GPIO is not supported)
Unsolicited Event Config Request
{
"unsolicitedEventConfigRequest": {
}
}
Unsolicited Event Config Response
{
"unsolicitedEventConfigResponse": {
"status": true,
"config": {}
}
}
Parameter config is a Ceefax Unsolicited Event Config JSON object.
Event Log Request
{
"eventLogRequest": {
"maxLogs": 10
}
}
Event Log Response
{
"eventLogResponse": {
"status": true,
"events": [],
"errors": []
}
}
Parameter events is an array of Ceefax Event JSON objects.
Error options:
LIMIT_TOO_SMALLLIMIT_TOO_BIG
File Transfer
File Transfer Start Upload Request
For transferring files to the RockREMOTE.
{
"fileTransferStartUploadRequest": {
"fileId": "file-upload-1",
"name": "my-file.txt",
"size": 500,
"blockSize": 100,
"checksum": "my-file-checksum",
"compression": "NONE",
"flow": "FLOW_REQUEST"
}
}
Compression options:
NONEGZIPXZ
Flow options:
FLOW_REQUEST- Block Request and Response (default and initial implementation)FLOW_UNSOLICITED- Block responses are sent unsolicited once configured and started
File Transfer Start Upload Response
{
"fileTransferStartUploadResponse": {
"fileId": "file-upload-1",
"status": true,
"errors": [],
"blockNumber": 0
}
}
Parameter blockNumber should be 0 unless resuming an upload.
Error options:
ANOTHER_TRANSFER_IN_PROGRESSMETA_FILE_DOES_NOT_EXISTFAILED_TO_PARSE_META_DATABASE_DIRECTORY_DOES_NOT_EXISTNOT_ENOUGH_SPACEFILENAME_INVALIDFILE_ALREADY_EXISTSCOMPRESSION_TYPE_NOT_SUPPORTEDBLOCK_SIZE_TOO_BIG
File Transfer Start Download Request
{
"fileTransferStartDownloadRequest": {
"fileId": "file-download-1",
"name": "my-file.txt",
"blockSize": 1000,
"checksum": "",
"compression": "NONE",
"flow": "FLOW_REQUEST"
}
}
Checksum should only be set if resuming a download to ensure no file changes.
Compression options:
NONEGZIPXZ
Flow options:
FLOW_REQUEST- Block Request and Response (default and initial implementation)FLOW_UNSOLICITED- Block responses are sent unsolicited once configured and started
File Transfer Start Download Response
{
"fileTransferStartDownloadResponse": {
"fileId": "file-download-1",
"checksum": "",
"size": 5000,
"status": true,
"errors": []
}
}
Error options:
ANOTHER_TRANSFER_IN_PROGRESSMETA_FILE_DOES_NOT_EXIST- Can only occur when resuming a downloadFAILED_TO_PARSE_META_DATA- Can only occur when resuming a downloadFILENAME_INVALIDFILE_DOES_NOT_EXISTFILE_HAS_ZERO_SIZEFILE_SIZE_DOES_NOT_MATCH_EXPECTED- Can only occur when resuming a downloadCHECKSUM_DOES_NOT_MATCH_EXPECTED- Can only occur when resuming a downloadBASE_DIRECTORY_DOES_NOT_EXISTCOMPRESSION_TYPE_NOT_SUPPORTEDBLOCK_SIZE_TOO_BIG
File Transfer Block Request
Only used when transfer flow is FLOW_REQUEST
{
"fileTransferBlockRequest": {
"fileId": "file-upload-1",
"blockNumber": 3,
"blockData": "RXFFQkNqZDBlWEJsTG1kdmIyZHNaM1JsZWdBZ2ZkeGhzZHM="
}
}
Block data should only be populated when uploading to the RockREMOTE.
File Transfer Block Response
Send in response to a File Transfer Block Request when using FLOW_REQUEST, otherwise sent unsolicited.
{
"fileTransferBlockResponse": {
"fileId": "file-download-1",
"blockNumber": 1,
"status": true,
"blockData": "RXFFQkNqZDBlWEJsTG1kdmIyZHNaM1JsZWdBZ2ZkeGhzZHM=",
"errors": []
}
}
Block data is only populated when downloading from the RockREMOTE.
Error options:
WRITE_FAILEDREAD_FAILEDTRANSFER_NOT_IN_PROGRESS
File Transfer Retry Block Request
Requests a File Transfer Block Response for a specific block.
{
"fileTransferRetryBlockRequest": {
"fileId": "file-download-1",
"blockNumber": 3
}
}
File Transfer Finished Request
{
"fileTransferFinishedRequest": {
"fileId": "file-download-1"
}
}
File Transfer Finished Response
{
"fileTransferFinishedResponse": {
"fileId": "file-download-1",
"status": true,
"errors": []
}
}
Error options:
TRANSFER_NOT_IN_PROGRESSCHECHSUMS_DO_NOT_MATCH
File Transfer Abort Request
{
"fileTransferAbortRequest": {
"fileId": "file-download-1"
}
}
File Transfer Abort Response
{
"fileTransferAbortResponse": {
"fileId": "file-download-1",
"status": true,
"errors": []
}
}
Error options:
TRANSFER_NOT_IN_PROGRESS
GNSS
Set GNSS Config Request
{
"setGnssConfigRequest": {
"config": {}
}
}
The config parameter is a Ceefax GNSS Config JSON object.
Set GNSS Config Response
{
"setGnssConfigResponse": {
"status": true,
"errors": []
}
}
Error options:
TIMEOUT_INVALID- If timoutSecs is larger than intervalSecsINTERVAL_TOO_SMALL- < 60INTERVAL_TOO_BIG- > 86400TIMEOUT_TOO_SMALL- < 30TIMEOUT_TOO_BIG- > 3600
Get GNSS Config Request
{
"getGnssConfigRequest": {}
}
Get GNSS Config Response
{
"getGnssConfigResponse": {
"status": true,
"config": {}
}
}
The config parameter is a Ceefax GNSS Config JSON object.
Sleep
Update Sleep Config Request
{
"updateSleepConfigRequest": {
"config": {
"level": "SLEEP_LEVEL_1"
}
}
}
Sleep options:
SLEEP_DISABLEDSLEEP_LEVEL_1- Keeps Super caps charging and checks sleep pin frequentlySLEEP_LEVEL_2- Disables Super caps from charging and checks sleep pin frequentlySLEEP_LEVEL_3- Disables Super caps from charging and checks the sleep pin infrequently, there might be a longer delay detecting a positive voltage to wake-up
Update Sleep Config Response
{
"updateSleepConfigResponse": {
"status": true,
"errors": []
}
}
Error options:
SLEEP_PIN_LOW- The sleep pin is below the threshold so sleep could not be enabled as it would go to sleep straight awaySLEEP_NOT_SUPPORTED- Returns if the AVR MCU firmware version is not equal to and greater than 2.0.1
Get Sleep Config Request
{
"getSleepConfigRequest": {}
}
Get Sleep Config Response
{
"getSleepConfigResponse": {
"status": true,
"config": {
"level": "SLEEP_LEVEL_1"
},
"sleepInputValid": true,
"errors": []
}
}
Sleep options:
SLEEP_DISABLEDSLEEP_LEVEL_1- Keeps Super caps charging and checks sleep pin frequentlySLEEP_LEVEL_2- Disables Super caps from charging and checks sleep pin frequentlySLEEP_LEVEL_3- Disables Super caps from charging and checks the sleep pin infrequently, there might be a longer delay detecting a positive voltage to wake-up
Error options:
SLEEP_NOT_SUPPORTED- Returns if the AVR MCU firmware version is not equal to and greater than 2.0.1
IOT Gateway
Get Idiot Config Request
{
"getIdiotConfigRequest": {}
}
Get Idiot Config Response
{
"getIdiotConfigResponse": {
"status": true,
"idiotConfig": {}
}
}
The idiotConfig parameter is an IdIot Config JSON object.
Set Idiot Config Request
{
"setIdiotConfigRequest": {
"idiotConfig": {}
}
}
The idiotConfig parameter is an IdIot Config JSON object.
Set Idiot Config Response
{
"setIdiotConfigResponse": {
"status": true,
"errors": []
}
}
Error options:
INVALID_MQTT_BROKER_PORTINVALID_MQTT_USERNAMEINVALID_MQTT_PASSWORDIDIOT_ENABLED_BUT_MQTT_DISABLED- If idiotEnabled is true, then mqttBrokerEnabled needs to be trueINVALID_IDIOT_BATCH_MAX_SIZEINVALID_IDIOT_BATCH_MAX_TIME
IMT
IMT Request
{
"imtRequest": {
"topic": 123,
"delaySeconds": 60,
"repeats": 0,
"filename": "stored_file.txt",
"payload": "SGVsbG8sIHdvcmxkIQ=="
}
}
Only one of filename or payload can be provided.
The payload parameter is a Base64 encoded string.
IMT Response
{
"imtResponse": {
"status": true,
"errors": []
}
}
Error options:
MO_ALREADY_IN_PROGRESSREADING_DATA_FILE_FAILEDNO_PAYLOADPAYLOAD_TOO_BIGNOT_SUBSCRIBED_TO_TOPICDELAY_SECONDS_OUT_OF_RANGEREPEATS_OUT_OF_RANGENOT_PROVISIONED
Get IMT Config Request
{
"getImtConfigRequest": {}
}
Get IMT Config Response
{
"getImtConfigResponse": {
"status": true,
"config": {}
}
}
Parameter config is a Ceefax IMT Config JSON object.
Update IMT Config Request
{
"updateImtConfigRequest": {
"config": {}
}
}
Parameter config is a Ceefax IMT Config JSON object.
Update IMT Config Response
{
"updateImtConfigResponse": {
"status": true,
"errors": []
}
}
Error options:
MO_TTL_TOO_SMALL- Less than 1 dayMO_TLL_TOO_BIG- More than 7 daysMO_RETRY_COUNT_TOO_BIG- More than 2000
Get IMT State Request
{
"getImtStateRequest": {}
}
Get IMT State Response
{
"getImtStateResponse": {
"status": true,
"topicStats": [{
"topic": 255,
"topicName": "Custom Topic",
"moCount": 245,
"mtCount": 12,
"moDropCount": 55,
"mtDropCount": 0
}],
"moQueueState": {
"currentState": "IRIDIUM_IMT_MO_IDLE",
"length": 3,
"bytes": 71332
}
}
}
Current State options:
IRIDIUM_IMT_MO_IDLEIRIDIUM_IMT_MO_SCHEDULEDIRIDIUM_IMT_MO_QUEUEDIRIDIUM_IMT_MO_TRANSFERRING
Clear IMT MO Queue Request
{
"clearImtMoQueueRequest": {}
}
Clear IMT MO Queue Response
{
"clearImtMoQueueResponse": {
"status": true,
"errors": []
}
}
Error options:
MO_QUEUE_ALREADY_EMPTY
GPIO
Update GPIO Request
{
"updateGpioRequest": {
"default": false,
"gpio": []
}
}
Parameter gpio is an array of GPIO Pin Config JSON objects.
Update GPIO Response
{
"updateGpioResponse": {
"status": true,
"errors": []
}
}
Error options:
GPIO_NOT_SUPPORTEDINVALID_GPIO_MODE- Configured mode on a GPIO mode is not supportedINVALID_GPIO_VALUE- GPIO_HIGH on Rev2 outputs or value given to a GPIO inputINVALID_GPIO_FILTER- GPIO Filter given to GPIO outputGPIO_ID_OUT_OF_RANGE- A given GPIO ID was beyound the number of GPIOs supported on the RR
Get GPIO Config Request
{
"getGpioConfigRequest": {}
}
Get GPIO Config Response
{
"getGpioConfigResponse": {
"status": true,
"gpio": [],
"capabilities": [{
"id": 0,
"supported_modes": ["GPIO_MODE_INPUT", "GPIO_MODE_OUTPUT"]
}],
"errors": []
}
}
Parameter gpio is an array of GPIO Pin Config JSON objects.
Supported mode options:
GPIO_MODE_INPUTGPIO_MODE_OUTPUTGPIO_MODE_INT_RISINGGPIO_MODE_INT_FALLINGGPIO_MODE_INT_CHANGE
Error options:
GPIO_NOT_SUPPORTED
Get GPIO State Request
{
"getGpioStateRequest": {
"all": false,
"id": 3
}
}
Parameter id is only required if all is false.
Get GPIO State Response
{
"getGpioStateResponse": {
"status": true,
"gpioState": [],
"errors": []
}
}
Parameter gpioState is an array of GPIO Pin State JSON objects.
Error options:
GPIO_NOT_SUPPORTEDGPIO_ID_OUT_OF_RANGE
FTP
Get FTP Config Request
{
"ceefaxGetFTPConfigRequest": {}
}
Get FTP Config Response
{
"ceefaxGetFTPConfigResponse": {
"status": true,
"config": {}
}
}
Parameter config is a Ceefax FTP Config JSON object.
Update FTP Config Request
{
"ceefaxUpdateFTPConfigRequest": {
"config": {}
}
}
Parameter config is a Ceefax FTP Config JSON object.
Update FTP Config Response
{
"ceefaxUpdateFTPConfigResponse": {
"status": true,
"errors": []
}
}
Error options:
TRANSFER_TO_SEND_TIME_TOO_SMALL- Less than 10 secondsTRANSFER_TO_SEND_TIME_TOO_BIG- 1 hourINVALID_GLOB_PATTERN- Characters in which means the glob pattern is not validTOO_MANY_GLOB_PATTERNS- Initial limit to 10USERNAME_INVALID- Doesn't match the Linux rules for a usernameINVALID_PORT- Invalid port numbers for the range
Update FTP Password Request
{
"ceefaxUpdateFTPPasswordRequest": {
"currentPassword": "weak-password",
"newPassword": "strong-password"
}
}
Update FTP Password Response
{
"ceefaxUpdateFTPPasswordResponse": {
"status": true,
"errors": []
}
}
Error options:
INVALID_CURRENT_PASSWORD- Current password given doesn't match the current. Default is rockremoteINVALID_NEW_PASSWORD- 7-bit ASCII and 6 to 255 charactersFAILED_CHANGE_PASSWORD- OS issues setting password, shouldn't happen but could
FTP Command Request
{
"ceefaxFTPCommandRequest": {
"command": "DELETE_ALL"
}
}
Command options:
DELETE_ALL
FTP Command Response
{
"ceefaxFTPCommandResponse": {
"status": true,
"errors": []
}
}
Error options:
INVALID_CURRENT_PASSWORD- Current password given doesn't match the current. Default is rockremoteINVALID_NEW_PASSWORD- 7-bit ASCII and 6 to 255 charactersFAILED_CHANGE_PASSWORD- OS issues setting password, shouldn't happen but could
Global Rules
Get Global Rules Request
{
"ceefaxGetGlobalRulesRequest": {}
}
Get Global Rules Response
{
"ceefaxGetGlobalRulesResponse": {
"status": true,
"rules": {}
}
}
The rules parameter is a Ceefax Global Rules JSON object.
Update Global Rules Request
{
"ceefaxUpdateGlobalRulesRequest": {
"rules": {}
}
}
The rules parameter is a Ceefax Global Rules JSON object.
Update Global Rules Response
{
"ceefaxUpdateGlobalRulesResponse": {
"status": true,
"errors": []
}
}
Error options:
INVALID_OUT_PROTOCOL- Invalid protocol should only be TCP/UDP/ICMPINVALID_OUT_IP- The IP is invalid or the CIDR is invalidINVALID_HOSTNAME- The hostname is not a domain name (invalid characters)INVALID_OUT_PORT- The port is out of rangeLOCAL_DNS_NOT_SET- If the hostname is used local DNS forwarding needs to be set
Raw IMT
Raw IMT MO Status
{
"ceefaxRawIMTMoStatus": {
"topic": 244,
"at": {},
"state": "IMT_MO_STATE_QUEUED"
}
}
Parameter at is a Rosetta Date Time JSON object.
State options:
IMT_MO_STATE_QUEUEDIMT_MO_STATE_SENDINGIMT_MO_STATE_DROPPEDIMT_MO_STATE_CANCELLEDIMT_MO_STATE_SENT
Send Raw IMT Request
{
"ceefaxSendRawImtRequest": {
"topic": 244,
"payload": "SGVsbG8sIHdvcmxkIQ==",
"emplace": "BACK"
}
}
The payload parameter is a Base64 encoded string.
Emplace options:
BACK- Default, places the message to back of the MO QueueFRONT- Will place the message to the front of the MO Queue
Send Raw IMT Response
{
"ceefaxSendRawImtResponse": {
"status": true,
"messageId": 34621,
"errors": []
}
}
Error options:
TOPIC_NOT_PROVISIONEDPAYLOAD_TOO_LARGE
Get Raw IMT Request
{
"ceefaxGetRawImtRequest": {
"topic": 244
}
}
Get Raw IMT Response
{
"ceefaxGetRawImtResponse": {
"status": true,
"messageId": 24656,
"payload": "SGVsbG8sIHdvcmxkIQ==",
"at": {},
"errors": []
}
}
The payload parameter is a Base64 encoded string.
Parameter at is a Rosetta Date Time JSON object.
Error options:
TOPIC_NOT_PROVISIONEDNO_MESSAGES
Get Raw IMT Status Request
{
"ceefaxGetRawImtStatusRequest": {
"messageId": 24576
}
}
Get Raw IMT Status Response
{
"ceefaxGetRawImtStatusResponse": {
"status": true,
"imtStatus": {
"topic": 245,
"at": {},
"state": "IMT_MO_STATE_QUEUED"
},
"errors": []
}
}
Parameter at is a Rosetta Date Time JSON object.
State options:
IMT_MO_STATE_QUEUEDIMT_MO_STATE_SENDINGIMT_MO_STATE_DROPPEDIMT_MO_STATE_CANCELLEDIMT_MO_STATE_SENT
Error options:
INVALID_MESSAGE_ID
Command Raw IMT Request
{
"ceefaxCommandRawImtRequest": {
"topic": 255,
"messageId": 26652,
"command": "CLEAR_MT_QUEUE"
}
}
Parameter messageId should only be provided when using command option CANCEL_MO, topic should not be provided at the same time.
Command options:
CLEAR_MT_QUEUE- provide onlytopicCLEAR_MO_QUEUE- provide onlytopicCANCEL_MO- provide onlymessageId
Command Raw IMT Response
{
"ceefaxCommandRawImtResponse": {
"status": true,
"errors": []
}
}
Error options:
MO_CANCELLATION_FAILEDINVALID_MESSAGE_IDTOPIC_NOT_PROVISIONED
Ack Raw IMT Request
{
"ceefaxAckRawImtRequest": {
"messageId": 54426
}
}
Ack Raw IMT Response
{
"ceefaxAckRawImtResponse": {
"status": true,
"errors": []
}
}
Error options:
INVALID_MESSAGE_ID
List Raw IMT Topics Request
{
"ceefaxListRawImtTopicsRequest": {}
}
List Raw IMT Topics Response
{
"ceefaxListRawImtTopicsResponse": {
"status": true,
"topics": [
{
"id": 244,
"name": "RAW_TOPIC"
}
],
"errors": []
}
}
Error options:
NO_TOPICS_PROVISIONED
Wireguard
Get Wireguard Config Request
{
"ceefaxGetWireguardConfigRequest": {}
}
Get Wireguard Config Response
{
"ceefaxGetWireguardconfigResponse": {
"status": true,
"config": {}
}
}
Parameter config is a Ceefax Wireguard Config JSON object.
Update Wireguard Config Request
{
"ceefaxUpdateWireguardConfigRequest": {
"config": {}
}
}
Parameter config is a Ceefax Wireguard Config JSON object.
Update Wireguard Config Response
{
"ceefaxUpdateWireguardConfigResponse": {
"status": true,
"errors": []
}
}
Error options:
INVALID_IFACE_PRIVATE_KEYINVALID_IFACE_PUBLIC_KEYINVALID_IFACE_KEY_MISMATCHNO_ALLOWED_IPS_FOR_PEERINVALID_PEER_PUBLIC_KEYINVALID_PEER_IPINVALID_PEER_CIDRINVALID_PEER_ENDPOINT_PORTINVALID_PEER_ENDPOINT_IPMTU_TOO_SMALL- Anything below 500 is probably too lowMTU_TOO_BIG- RR can't really do more than 1500INVALID_IFACE_IP
Omni
Get Omni Config Request
{
"ceefaxGetOmniConfigRequest": {}
}
Get Omni Config Response
{
"ceefaxGetOmniConfigResponse": {
"status": true,
"config": {}
}
}
Parameter config is a Ceefax Omni Config JSON object.
Update Omni Config Request
{
"ceefaxUpdateOmniConfigRequest": {
"config": {}
}
}
Parameter config is a Ceefax Omni Config JSON object.
Update Omni Config Response
{
"ceefaxUpdateOmniConfigResponse": {
"status": true,
"errors": []
}
}
Error options:
OMNI_COMPRESSOR_NOT_INSTALLEDINVALID_SERVER_PORTINVALID_SERVER_IPINVALID_SERVER_HOSTNAME
Persistent Config
Get Persistent Config Request
{
"ceefaxGetPersistentConfigRequest": {}
}
Get Persistent Config Response
{
"ceefaxGetPersistentConfigResponse": {
"status": true,
"config": {
"confVersion": 10,
"wan": {},
"lan": {},
"localDevices": [],
"natConfig": {},
"cellularConfig": {},
"smartConnectionConfig": {},
"sleepConfig": {
"level": "SLEEP_DISABLED"
},
"serialSettings": [],
"idiotConfig": {},
"wifi": {},
"logConfig": {
"level": "FW_LOG_INFO"
},
"gnssConfig": {},
"gpioPinConfig": [],
"eventConfig": {},
"imtConfig": {},
"ftpConfig": {},
"globalRules": {},
"wireguardConfig": {},
"omniConfig": {}
}
}
}
| Parameter | JSON Object |
|---|---|
wan | Ceefax WAN |
lan | Ceefax LAN Interface |
localDevices | Ceefax Local Device Array |
natConfig | Ceefax NAT Config |
cellularConfig | Ceefax Cellular Config |
smartConnectionConfig | Ceefax Smart Connection Config |
serialSettings | Ceefax Serial Settings Array |
idiotConfig | Ceefax Idiot Config |
wifi | Ceefax Wi-Fi Interface |
gnssConfig | Ceefax GNSS Config |
gpioPinConfig | Ceefax GPIO Pin Config Array |
eventConfig | Ceefax Unsolicited Event Config |
imtConfig | Ceefax IMT Config |
ftpConfig | Ceefax FTP Config |
globalRules | Ceefax Global Rules |
wireguardConfig | Ceefax Wireguard Config |
omniConfig | Ceefax Omni Config |
Sleep level options:
SLEEP_DISABLEDSLEEP_LEVEL_1- Keeps Super caps charging and checks sleep pin frequentlySLEEP_LEVEL_2- Disables Super caps from charging and checks sleep pin frequentlySLEEP_LEVEL_3- Disables Super caps from charging and checks the sleep pin in-frequently
Log level options:
FW_LOG_INFO- defaultFW_LOG_TRACE- Debug with extra verbose logs like Iridium JSPR, ModemManager and GNSS NMEA sentencesFW_LOG_DEBUGFW_LOG_WARNINGFW_LOG_ERROR
Shared JSON Structures
Rosetta Date Time
{
"date": {
"Day": 1,
"Month": 1,
"Year": 2025
},
"time": {
"Hour": 12,
"Minute": 0,
"Second": 10,
"Milisecond": 100
}
}
Ceefax Location
{
"source": "GGA_GPS",
"at": {},
"latitude": 12.4566,
"longitude": 2.57543,
"fix": "LOCATION_FIX_STANDARD",
"numSatellites": 3,
"hdop": 0.1245,
"altitude": 13.563,
"geodialSeparation": 54.67,
"dgpsAge": 12,
"dgpsId": 153,
"speed": 12.54,
"heading": 179.2
}
The at parameter is a Rosetta Date Time JSON object.
Source options:
GGA_NONEGGA_GPSGGA_GALILEOGGA_GLONASSGGA_GNSS
Fix options:
LOCATION_FIX_NONELOCATION_FIX_STANDARD- Stand-alone location gatheringLOCATION_FIX_DGPS- Differential GPS. Additional correction from base station is used
Parameter units are:
dgpsAge- Seconds since last update from differential reference stationdgpsId- DGPS station idspeed- Speed over ground in knotsheading- Degrees true
Ceefax Gpio Pin State
{
"id": 1,
"mode": "GPIO_MODE_INPUT",
"value": "GPIO_VALUE_LOW",
"count": 5
}
Mode options:
GPIO_MODE_INPUTGPIO_MODE_OUTPUTGPIO_MODE_INT_RISINGGPIO_MODE_INT_FALLINGGPIO_MODE_INT_CHANGE
Value options:
GPIO_VALUE_LOWGPIO_VALUE_HIGHGPIO_VALUE_FLOATING
Ceefax IPV4
{
"octet0": 25,
"octet1": 97,
"octet2": 11,
"octet3": 42
}
Ceefax WAN
{
"mode": "CONNECTION_AUTO",
"dns1": {},
"dns2": {},
"dns3": {},
"ntp": [
{
"address": "pi.local",
"port": 22
}
],
"ntpEnabled": true,
"cellularImtEnabled": false
}
Parameters dns1, dns2 and dns3 are Ceefax IPV4 json objects.
Mode options are:
CONNECTION_AUTOCONNECTION_CELLULARCONNECTION_IRIDIUMDISCONNECT
Ceefax LAN Interface
{
"enabled": true,
"routerIp": {},
"subnet": {},
"dhcpEnabled": true,
"dhcpFrom": {},
"dhcpTo": {},
"leaseTime": 254325
}
Parameters routerIp, subnet, dhcpFrom and dhcpTo are Ceefax IPV4 json objects.
Ceefax Wi-Fi Interface
{
"mode": "ACCESS_POINT_BRIDGED",
"ssid": "My RockBLOCK Network",
"passphrase": "jb3kb2jdnm65l",
"channel": "CH_AUTO"
}
Mode options are:
DISABLEDACCESS_POINT_BRIDGED
Channel options are:
CH_AUTOCH_2G_1CH_2G_6CH_2G_11
Ceefax Local Device
{
"id": "2a89b194-ecbc-4bef-a7a9-b02e6cf957ac",
"name": "My Local Device",
"ip": {},
"outbound": {
"proto": "PROTOCOL_ICMP",
"oldDestIp": {},
"destSubnet": 3233,
"destPortStart": 25565,
"destPortEnd": 3301,
"iface": ["IFACE_ETHERNET"],
"destIp": {},
"hostname": "Either hostname or destIp provided"
},
"portForward": {
"iface": "IFACE_IRIDIUM",
"proto": "PROTOCOL_TCP",
"destPort": 25566,
"targetPort": 25565
},
"allowLocalDNS": false,
"autoAdded": true,
"keepalive": {
"proto": "PROTOCOL_ICMP",
"port": 3307,
"intervalSecs": 30
}
}
Parameters ip, oldDestIp and destIp are Ceefax IPV4 json objects.
Proto options are:
PROTOCOL_NULLPROTOCOL_ICMPPROTOCOL_TCPPROTOCOL_UDP
Iface options are:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD
Ceefax Serial Net
{
"transport": "SER_TRANS_TCP_CLIENT",
"listen": {
"port": 25565,
"allowedIps": [{
"ip": {},
"subnet": 30
}],
"maxClients": 5,
"iface": "IFACE_ETHERNET"
},
"connect": {
"port": 25566,
"ip": {},
"connectionTimeout": 1000,
"idleTimeout": 1000
}
}
The ip parameter is a Ceefax IPV4 json object.
Parameters listen and connect are mutually exclusive.
Transport options are:
SER_TRANS_OFFSER_TRANS_TCP_CLIENTSER_TRANS_TCP_SERVERSER_TRANS_UDP
Iface options are:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD
Ceefax Serial Settings
{
"enabled": true,
"serialPort": "PORT_A",
"serialMode": "MODE_RS232",
"baudRate": "BAUD_RATE_4800",
"flowControl": "FLOW_NONE",
"characterType": "CHARACTER_TYPE_8N1",
"rxEol": "\\r\\n",
"rxIdleTimout": 1000,
"rxBufferSize": 1000,
"mo": {},
"mt": {},
"appMode": "SER_APP_NET"
}
Parameters mo and mt are Ceefax Serial Net json objects.
Serial Port options are:
PORT_APORT_BPORT_CPORT_D
Serial Mode options are:
MODE_RS232MODE_RS4XX_FULL_DUPLEXMODE_RS4XX_HALF_DUPLEX
Baud Rate options are:
BAUD_RATE_4800BAUD_RATE_9600BAUD_RATE_19200BAUD_RATE_38400BAUD_RATE_57600BAUD_RATE_115200BAUD_RATE_230400BAUD_RATE_460800BAUD_RATE_921600
Flow Control options are:
FLOW_NONEFLOW_SOFTWAREFLOW_RTS_CTS
Character Type options are:
CHARACTER_TYPE_8N1CHARACTER_TYPE_8E1CHARACTER_TYPE_8O1CHARACTER_TYPE_8M1CHARACTER_TYPE_8S1CHARACTER_TYPE_8N2CHARACTER_TYPE_8E2CHARACTER_TYPE_8O2CHARACTER_TYPE_8M2CHARACTER_TYPE_8S2CHARACTER_TYPE_7N1CHARACTER_TYPE_7E1CHARACTER_TYPE_7O1CHARACTER_TYPE_7M1CHARACTER_TYPE_7S1CHARACTER_TYPE_7N2CHARACTER_TYPE_7E2CHARACTER_TYPE_7O2CHARACTER_TYPE_7M2CHARACTER_TYPE_7S2
App Mode options are:
SER_APP_NETSER_APP_GNSS
Ceefax Firmware Info
{
"type": "FIRMWARE_MAIN",
"version": "3.4.2",
"isUpdatable": true,
"updateInProgress": false
}
Firmware Type options:
FIRMWARE_MAINFIRMWARE_MCUFIRMWARE_IRIDIUMFIRMWARE_CELLULAR
Ceefax System Info
{
"processor": "ARM Cortex-A76",
"serial": "5132",
"xferTmpDir": "/etc/store",
"fwMain": {},
"fwMCU": {},
"fwIridium": {},
"appServerConfDir": "/etc/conf",
"platform": {},
"modems": [{
"imei": "30054365346909",
"serial": "6436",
"iccid": "749339770148334",
"manufacturer": "Iridium",
"model": "9770",
"signalLevel": 5,
"signalStrength": 4
}],
"networkInterfaces": [{
"name": "eth0",
"interface": "IFACE_ETHERNET",
"mac": {
"octet0": "8A",
"octet1": "1C",
"octet2": "F6",
"octet3": "75",
"octet4": "D2",
"octet5": "BB"
},
"up": true,
"carrier": true,
"mtu": 1500
}],
"voltages": {
"input":22.900625,
"v12":11.613125,
"v5":4.897460375,
"cap1":11.56939375,
"cap2":8.6933375,
"cap3":5.862346875,
"cap4":2.809375
},
"fwCellular": {}
}
Parameters fwMain, fwMCU, fwIridium and fwCellular are Ceefax Firmware Info json objects.
Interface options:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD
Ceefax Cellular Config
{
"apn": "internet.mnc012.mcc345.gprs",
"username": "username-example",
"password": "password-example",
"roaming": false,
"carrierProfile": "TELIT_PROFILE_UNKNOWN"
}
Carrier Profile options:
TELIT_PROFILE_UNKNOWN- This would be return if the telit module is initalising and firmware hasn't been able to request it yetTELIT_NF_ATT- AT&T North AmericaTELIT_NF_VERIZON- Verizon North AmericaTELIT_NF_TMOBILE- T-Mobile North AmericaTELIT_NF_BELL- Bell North AmericaTELIT_NF_TELUS- Telus North AmericaTELIT_AP_TELSTRA- Telstra, only on AP modulesTELIT_GLOBAL- Global configuration
Ceefax Smart Connection Config
{
"primary": "IFACE_ETHERNET",
"secondary": "IFACE_IRIDIUM",
"trackIp": [],
"interval": 1000,
"timeout": 10000,
"downCount": 3,
"upCount": 1
}
Parameters primary and secondary refer to the main and secondary network interface connections being used, options are:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD
The trackIp parameter is a Ceefax IPV4 json object.
Ceefax Unsolicited Event Config
{
"eventsEnabled": ["EVENT_LOCATION", "EVENT_STATUS_1H"]
}
Events enabled options:
EVENT_LOCATION- GNSS related eventEVENT_GPIO- GPIO related event, usually related to input event (change, falling, rising)EVENT_BOOT_UP- The RR has booted and brought up the Iridium IMT connection, this can be used after OTA upgrades
These periodic reports will only work if the RockREMOTE has a valid time, so NTP needs to be enabled or GNSS enabled:
EVENT_STATUS_1H- Hourly reporting status of the RockREMOTE (synced with midnight UTC)EVENT_STATUS_8H- Status reporting of the RockREMOTE every 8 hours (synced with midnight UTC)EVENT_STATUS_1D- Status reporting of the RockREMOTE every day (midnight UTC)
Ceefax GNSS Config
{
"mode": "LOCATION_START_UP",
"fixes": "LOCATION_FIXES_1",
"intervalSecs": 60,
"timeoutSecs": 120
}
Mode options:
LOCATION_DISABLEDLOCATION_START_UPLOCATION_PERIODICLOCATION_CONTINUOUS
Fixes options:
LOCATION_FIXES_1LOCATION_FIXES_5LOCATION_FIXES_10LOCATION_FIXES_20
The intervalSecs parameter is the interval in seconds the GNSS modules is woken up for a fix. Only applies when mode is LOCATION_PERIODIC. 60-86400 (1 minute to 1 day)
The timeoutSecs parameter is the timeout in seconds when the location fixing will abandoned if it doesn't meet the fixes criteria. 30-3600 (30 seconds to 1 hours)
Ceefax IdIot Config
{
"mqttBrokerEnabled": true,
"mqttBrokerPort": 8883,
"mqttBrokerUsername": "example-user",
"mqttBrokerPassword": "strong-password",
"idiotEnabled": "true",
"idiotBatchMaxSizeBytes": 10000,
"idiotBatchMaxTimeSecs": 60
}
The idiotEnabled parameter enables the MQTT over IMT gateway functionality.
The idiotBatchMaxSizeBytes parameter sets the total size of queued messages at which a batch message is sent.
The idiotBatchMaxTimeSecs parameter sets the maximum number of seconds after first receiving a message that a batch is sent.
Ceefax GPIO Pin Config
{
"id": 0,
"mode": "GPIO_MODE_INPUT",
"value": "GPIO_VALUE_LOW",
"filter": "GPIO_DEBOUNCE_LOW"
}
Mode options:
GPIO_MODE_INPUTGPIO_MODE_OUTPUTGPIO_MODE_INT_RISINGGPIO_MODE_INT_FALLINGGPIO_MODE_INT_CHANGE
Value options:
GPIO_VALUE_LOWGPIO_VALUE_HIGHGPIO_VALUE_FLOATING
Filter options:
GPIO_DEBOUNCE_LOWGPIO_DEBOUNCE_MEDIUMGPIO_DEBOUNCE_HIGH
Only one of value or filter should be provided.
Ceefax IMT Config
{
"moTTL": 1000000,
"moRetryCount": 3
}
Parameter moTTL is the Time To Live (TTL) of MO, this value is in seconds but it recommend to be in magnitude of day(s) in the UI
Parameter moRetryCount is the number of times a MO message will be retried before it is thrown away. 0 is default and will be unlimited retries
Ceefax Event
{
"at": {},
"type": "EVENT_CONNECTING",
"description": "A wonderful description"
}
Event type options:
EVENT_CONNECTINGEVENT_CONNECTEDEVENT_CONNECT_ERROREVENT_DISCONNECTINGEVENT_DISCONNECTEDEVENT_DISCONNECT_ERROREVENT_SERIAL_RXEVENT_REMOTE_RXEVENT_REMOTE_CONNECTEDEVENT_REMOTE_DISCONNECTEVENT_FIREWALL_RULEEVENT_IMT_MQTTEVENT_IMT_CDMEVENT_IMT_FTPEVENT_IMT- Generic event related to IMT MO
Ceefax FTP Config
{
"ftpLocalServerEnabled": true,
"ftpUsername": "username",
"passiveModeEnabled": true,
"passiveMinPort": 335,
"passiveMaxPort": 338,
"fileGlobPattern": ["*.txt"],
"transferToSentTime": 60,
"rule": "FTP_COMPLETE_RULE_NONE"
}
Rule options:
FTP_COMPLETE_RULE_NONEFTP_COMPLETE_RULE_DELETE_WHEN_SENT
Ceefax IPV4 Destination Rule
{
"proto": "PROTOCOL_ICMP",
"oldDestIp": {},
"destSubnet": 32,
"destPortStart": 25565,
"destPortEnd": 25570,
"iface": []
}
Proto options:
PROTOCOL_ICMPPROTOCOL_TCPPROTOCOL_UDP
Iface options are:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD
Ceefax Global Rules
{
"outbound": [],
"allowLocalDNS": true
}
The outbound parameter is an array of Ceefax IPV4 Destination Rule json objects.
Ceefax Wireguard Config
{
"enabled": true,
"iface": {
"ip": {},
"mtu": 1500,
"privateKey": "",
"publicKey": ""
},
"peer": {
"publicKey": "",
"allowedIps": [{
"ip": {},
"subnet": 32
}],
"endPointPort": 25565,
"endPointIp": {},
"keepAlive": 300
}
}
Parameters ip and endPointIp are Ceefax IPV4 Address JSON objects.
Ceefax Omni Config
{
"supported": true,
"server": {
"address": "25.162.623.11",
"port": 22
}
}
Ceefax NAT Config
{
"nat1to1": [
{
"iface": "IFACE_ETHERNET",
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
]
}
Iface options:
IFACE_ETHERNETIFACE_WLANIFACE_LOOPBACKIFACE_LAN_BRIDGEIFACE_IRIDIUMIFACE_LTEIFACE_WIREGUARD