Constant Table¶
Read ConstTable¶
Instruct the data logger to publish the list of constants defined in CRBasic ConstTable.
Topic Structure: <baseTopic>/cc/<deviceID>/constTable
Properties
{string}
{}empty json payload
Example Command
Subscribe cs/v2/cc/ABCD-EFGH-1234/constTable
{ }
Response
Publish cs/v2/cr/ABCD-EFGH-1234/constTable
{
"constTable": {
"name": "Const_Table",
"model": "CR1000X",
"serialNumber": "70021",
"clientID": "7GY3-DZYK-KBWF"
},
"constants": {
"THERMAL_RATIO": "1.8",
"THAW_OFFSET": "32"
}
}
Edit Constant Table¶
Instruct the data logger to edit and apply new values to the ConstTable in the CRBasic Program. The ConstTable is available for editing only when the Name parameter is set.
Topic Structure: <baseTopic>/cc/<deviceID>/editConst
Properties
"CONST_NAME":{string} Value to be applied
Example entries:
The JSON keys and values must both be of type string.
The data logger will cast the string values to their initialized types when updating the constants.
"THRESHOLD": "10.5"— sets a float"SENSOR_ID": "99"— sets an integer"STATION_NAME": "North 40"— sets a string
The editConst command relies entirely on the client to ensure that each constant is updated with an appropriate value.
If an invalid or empty value is provided, the resulting CRBasic program may produce undefined constant declarations, which will result in compile errors.
Example of an invalid entry:
"THRESHOLD": "ABC"— sets a constant that was initialized as a float to a string"ABC"
This would modify the CRBasic code to: Const THRESHOLD = ABC
The program may fail to compile because ABC is not defined.
Example Command
Subscribe cs/v2/cc/ABCD-EFGH-1234/editConst
{
"TEAM_NAME": "Dodgers",
"PLAYER_NAME": "Freeman",
"PLAYER_NUMBER": "5",
"BAT_AVG_BENCHMARK": "0.333"
}
Progress
Progress of the editConst will be published on the state topic.
Publish cs/v2/state/ABCD-EFGH-1234
Applying New Values
{
"clientId": "ABCD-EFGH-1234",
"state": "offline",
"reason": "Changed constants, recompiling"
}
Response
Publish cs/v2/cr/ABCD-EFGH-1234/editConst
In addition to the state topic messages, the data logger will publish a final result of the process on the cr topic.
{
"success": "Editing constants succeeded"
}
Error Responses
{"error": "Constant table does not exist or has no name"}{"error": "<name> does not exist"}Will immediately quit and report the non-existent constant.
{"error": "No constant table changes (Empty request)"}{"error": "No constant table changes"}{"error": "Includes value that is too large (max 79 chars)"}{"error": "Constant values must be of type string"}{"error": "Editing constants failed"}