IOT protocol
info
- All here listed messages are little-endian.
- DLC of all messages is 8 bytes
- Host - IOT device connecting to the controller
- Controller - siliXcon controller with LYNX firmware
tip
- In most cases use host address = 7
- controller address is usually 0
- It is possible to use broadcast value as controller address - 255
- If you have multiple controllers, each controller must have a unique address
Command request
CAN_ID = 0x630 + host address
Byte | type | Description |
---|---|---|
0 | UINT_8 | controller addr, 255 = broadcast |
0-3 bite operation code, 4-7 session id | ||
2 | UINT_8 | Operation code index |
3 | UINT_8 | Operation code subindex |
4-7 | - | Data |
Command response
CAN_ID = 0x640 + controller address
Byte | type | Description |
---|---|---|
0 | UINT_8 | Host addr, 255 = broadcast |
1 | - | Same as was in command request |
2 | - | Same as was in command request |
3 | UINT_8 | Message index (for bulk data), 255 = last message |
4-7 | - | Data |
Operation code
Operation code | Description |
---|---|
1 | Read parameter |
2 | Write parameter |
3 | Load from backup parameter (restore) |
3 | Read metadata |
4 | Write metadata (reserved) |
5 | Issue command |
6 | Load parameters |
Read / write / load from backup parameter
When you read a parameter, in the request msg, leave "data" null. When you set a parameter, in response is real/set value.
Message index = 255 -> parameter/map does not exist.
Index | Parameter list description |
---|---|
0 - 10 | Map number |
15 | Map options |
16 | Gear opts |
20 - 255 | Reserved for other parameters |
Sub-index for map list | Description | Data |
---|---|---|
1 | kph | Float |
2 | pwr | Float |
3 | trqlvl | Float |
4 | accvlv | Float |
5 | paslvl | Float |
6 | pastrq | Float |
7 | comlvl | Float |
8 | sbrakelvl | Float |
Index = 15
This param are READ ONLY, you can not change them using CAN message
Sub-index for map options | Description | Data |
---|---|---|
1 | kphlimit | Float |
2 | pwrlimit | Float |
3 | restmapcnt | UINT8 |
4 | mapcnt | UINT8 |
Index = 16
Sub-index for gear options | Description | Data |
---|---|---|
1 | gearthr | Float |
2 | odothr | Float |
Read / write metadata
When data are char, the subindex in response is incremented each msg. The last message is with subindex = 255.
Index | Description | Data |
---|---|---|
1 | Usrcalib - DevName | Char |
2 | Usrcalib - DevSN | Char |
3 -12 | Usrcalib - DevIdX | INT_32 |
20 | Device SN | 12x Char |
21 | SWID | Char |
22 | HWID | Char |
30 | SWID hash | UINT32 |
31 | Config hash | UINT16 |
Issue command
Index | Description | sub-index | Response Data |
---|---|---|---|
1 | lock device | 0 - success | |
2 | un-lock device | 0 - success | |
3 | Force map | Map number | 0 - success |
4 | Reset trip counter | 0 - success | |
20 | Parameter save | 0 - succes, 1 - error | |
21 | Load parameters from main | 0 - success, 1 - error | |
22 | Load parameters from backup | 0 - success, 1 - error | |
50 | Execute identrun mode must be STANDBY or BRAKE | 0 - success |