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:
CONNECTED
ACTIVE
DISCONNECTED
Transport options:
NO_TRANSPORT
IRIDIUM
CELLULAR
WIFI
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:
UNKNOWN
TOO_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_IP
INVALID_SUBNET
CONFLICTING_IP
INVALID_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_INTERFACE
INVALID_MODE
INVALID_SSID
INVALID_PASSPHRASE
INVALID_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_ID
INVALID_NAME
DUPLICATE_NAME
INVALID_IP
DUPLICATE_IP
INVALID_MAC
DUPLICATE_MAC
INVALID_OUT_PROTOCOL
INVALID_OUT_IP
INVALID_OUT_PORT
INVALID_PORTF_IFACE
INVALID_PORTF_PROTOCOL
INVALID_PORTF_PORT
NET_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_INVALID
KEEP_ALIVE_INTERVAL_TOO_SMALL
KEEP_ALIVE_INTERVAL_TOO_BIG
KEEP_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_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_WIREGUARD
Update NAT Config Request
{
"updateNATConfigRequest": {
"natConfig": {
"nat1to1": [
{
"iface": "IFACE_ETHERNET",
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
]
}
}
}
Iface options:
IFACE_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_WIREGUARD
Update NAT Config Response
{
"updateNATConfigResponse": {
"status": false,
"errors": ["DUPLICATE_NAT1TO1_INTERFACE"]
}
}
Error options:
DUPLICATE_NAT1TO1_INTERFACE
NON_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_A
PORT_B
PORT_C
PORT_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_RANGE
MODE_NOT_SUPPORTED_ON_PORT
RX_BUFFER_SIZE_TOO_BIG
TOO_MANY_EOL_CHARACTERS
RX_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_ERROR
FORMAT_ERROR
IMPORT_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_ALL
LOG_RR_SERVICE
LOG_IRIDIUM_SIGNAL
LOG_CELLULAR_SIGNAL
LOG_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_INFO
FW_LOG_TRACE
FW_LOG_DEBUG
FW_LOG_WARNING
FW_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_INFO
FW_LOG_TRACE
FW_LOG_DEBUG
FW_LOG_WARNING
FW_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_PASSWORD
INSECURE_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_SET
CARRIER_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_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_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_IFACE
INVALID_SECONDARY_IFACE
TIMEOUT_TOO_LONG
INTERVAL_TOO_LONG
DOWN_COUNT_TOO_LARGE
UP_COUNT_TOO_LARGE
NO_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_1
LOCATION_FIXES_5
LOCATION_FIXES_10
LOCATION_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_TYPE
TIME_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_SMALL
LIMIT_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:
NONE
GZIP
XZ
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_PROGRESS
META_FILE_DOES_NOT_EXIST
FAILED_TO_PARSE_META_DATA
BASE_DIRECTORY_DOES_NOT_EXIST
NOT_ENOUGH_SPACE
FILENAME_INVALID
FILE_ALREADY_EXISTS
COMPRESSION_TYPE_NOT_SUPPORTED
BLOCK_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:
NONE
GZIP
XZ
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_PROGRESS
META_FILE_DOES_NOT_EXIST
- Can only occur when resuming a downloadFAILED_TO_PARSE_META_DATA
- Can only occur when resuming a downloadFILENAME_INVALID
FILE_DOES_NOT_EXIST
FILE_HAS_ZERO_SIZE
FILE_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_EXIST
COMPRESSION_TYPE_NOT_SUPPORTED
BLOCK_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_FAILED
READ_FAILED
TRANSFER_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_PROGRESS
CHECHSUMS_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_DISABLED
SLEEP_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_DISABLED
SLEEP_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_PORT
INVALID_MQTT_USERNAME
INVALID_MQTT_PASSWORD
IDIOT_ENABLED_BUT_MQTT_DISABLED
- If idiotEnabled is true, then mqttBrokerEnabled needs to be trueINVALID_IDIOT_BATCH_MAX_SIZE
INVALID_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_PROGRESS
READING_DATA_FILE_FAILED
NO_PAYLOAD
PAYLOAD_TOO_BIG
NOT_SUBSCRIBED_TO_TOPIC
DELAY_SECONDS_OUT_OF_RANGE
REPEATS_OUT_OF_RANGE
NOT_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_IDLE
IRIDIUM_IMT_MO_SCHEDULED
IRIDIUM_IMT_MO_QUEUED
IRIDIUM_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_SUPPORTED
INVALID_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_INPUT
GPIO_MODE_OUTPUT
GPIO_MODE_INT_RISING
GPIO_MODE_INT_FALLING
GPIO_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_SUPPORTED
GPIO_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_QUEUED
IMT_MO_STATE_SENDING
IMT_MO_STATE_DROPPED
IMT_MO_STATE_CANCELLED
IMT_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_PROVISIONED
PAYLOAD_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_PROVISIONED
NO_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_QUEUED
IMT_MO_STATE_SENDING
IMT_MO_STATE_DROPPED
IMT_MO_STATE_CANCELLED
IMT_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 onlytopic
CLEAR_MO_QUEUE
- provide onlytopic
CANCEL_MO
- provide onlymessageId
Command Raw IMT Response
{
"ceefaxCommandRawImtResponse": {
"status": true,
"errors": []
}
}
Error options:
MO_CANCELLATION_FAILED
INVALID_MESSAGE_ID
TOPIC_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_KEY
INVALID_IFACE_PUBLIC_KEY
INVALID_IFACE_KEY_MISMATCH
NO_ALLOWED_IPS_FOR_PEER
INVALID_PEER_PUBLIC_KEY
INVALID_PEER_IP
INVALID_PEER_CIDR
INVALID_PEER_ENDPOINT_PORT
INVALID_PEER_ENDPOINT_IP
MTU_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_INSTALLED
INVALID_SERVER_PORT
INVALID_SERVER_IP
INVALID_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_DISABLED
SLEEP_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_DEBUG
FW_LOG_WARNING
FW_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_NONE
GGA_GPS
GGA_GALILEO
GGA_GLONASS
GGA_GNSS
Fix options:
LOCATION_FIX_NONE
LOCATION_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_INPUT
GPIO_MODE_OUTPUT
GPIO_MODE_INT_RISING
GPIO_MODE_INT_FALLING
GPIO_MODE_INT_CHANGE
Value options:
GPIO_VALUE_LOW
GPIO_VALUE_HIGH
GPIO_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_AUTO
CONNECTION_CELLULAR
CONNECTION_IRIDIUM
DISCONNECT
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:
DISABLED
ACCESS_POINT_BRIDGED
Channel options are:
CH_AUTO
CH_2G_1
CH_2G_6
CH_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_NULL
PROTOCOL_ICMP
PROTOCOL_TCP
PROTOCOL_UDP
Iface options are:
IFACE_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_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_OFF
SER_TRANS_TCP_CLIENT
SER_TRANS_TCP_SERVER
SER_TRANS_UDP
Iface options are:
IFACE_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_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_A
PORT_B
PORT_C
PORT_D
Serial Mode options are:
MODE_RS232
MODE_RS4XX_FULL_DUPLEX
MODE_RS4XX_HALF_DUPLEX
Baud Rate options are:
BAUD_RATE_4800
BAUD_RATE_9600
BAUD_RATE_19200
BAUD_RATE_38400
BAUD_RATE_57600
BAUD_RATE_115200
BAUD_RATE_230400
BAUD_RATE_460800
BAUD_RATE_921600
Flow Control options are:
FLOW_NONE
FLOW_SOFTWARE
FLOW_RTS_CTS
Character Type options are:
CHARACTER_TYPE_8N1
CHARACTER_TYPE_8E1
CHARACTER_TYPE_8O1
CHARACTER_TYPE_8M1
CHARACTER_TYPE_8S1
CHARACTER_TYPE_8N2
CHARACTER_TYPE_8E2
CHARACTER_TYPE_8O2
CHARACTER_TYPE_8M2
CHARACTER_TYPE_8S2
CHARACTER_TYPE_7N1
CHARACTER_TYPE_7E1
CHARACTER_TYPE_7O1
CHARACTER_TYPE_7M1
CHARACTER_TYPE_7S1
CHARACTER_TYPE_7N2
CHARACTER_TYPE_7E2
CHARACTER_TYPE_7O2
CHARACTER_TYPE_7M2
CHARACTER_TYPE_7S2
App Mode options are:
SER_APP_NET
SER_APP_GNSS
Ceefax Firmware Info
{
"type": "FIRMWARE_MAIN",
"version": "3.4.2",
"isUpdatable": true,
"updateInProgress": false
}
Firmware Type options:
FIRMWARE_MAIN
FIRMWARE_MCU
FIRMWARE_IRIDIUM
FIRMWARE_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_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_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_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_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_DISABLED
LOCATION_START_UP
LOCATION_PERIODIC
LOCATION_CONTINUOUS
Fixes options:
LOCATION_FIXES_1
LOCATION_FIXES_5
LOCATION_FIXES_10
LOCATION_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_INPUT
GPIO_MODE_OUTPUT
GPIO_MODE_INT_RISING
GPIO_MODE_INT_FALLING
GPIO_MODE_INT_CHANGE
Value options:
GPIO_VALUE_LOW
GPIO_VALUE_HIGH
GPIO_VALUE_FLOATING
Filter options:
GPIO_DEBOUNCE_LOW
GPIO_DEBOUNCE_MEDIUM
GPIO_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_CONNECTING
EVENT_CONNECTED
EVENT_CONNECT_ERROR
EVENT_DISCONNECTING
EVENT_DISCONNECTED
EVENT_DISCONNECT_ERROR
EVENT_SERIAL_RX
EVENT_REMOTE_RX
EVENT_REMOTE_CONNECTED
EVENT_REMOTE_DISCONNECT
EVENT_FIREWALL_RULE
EVENT_IMT_MQTT
EVENT_IMT_CDM
EVENT_IMT_FTP
EVENT_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_NONE
FTP_COMPLETE_RULE_DELETE_WHEN_SENT
Ceefax IPV4 Destination Rule
{
"proto": "PROTOCOL_ICMP",
"oldDestIp": {},
"destSubnet": 32,
"destPortStart": 25565,
"destPortEnd": 25570,
"iface": []
}
Proto options:
PROTOCOL_ICMP
PROTOCOL_TCP
PROTOCOL_UDP
Iface options are:
IFACE_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_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_ETHERNET
IFACE_WLAN
IFACE_LOOPBACK
IFACE_LAN_BRIDGE
IFACE_IRIDIUM
IFACE_LTE
IFACE_WIREGUARD