A generic receiver performs the following checks to the received data:
- Message start marker is located to find the beginning of the message.
- Data length is recorded and the recorded number of data bytes is received or timeout occurs.
- Checksum of the message is checked. Messages with a checksum error are ignored.
- Receiver ID must match the assigned unit ID.
- Message ID must be valid.
- Data length must comply with the message description.
- Data contents must comply with the message data description.
These rules apply to both requests and responses.
The client design should take it into account that if a mobile sensor is commanded to send continuously data (SEND DATA), the response to a command is not necessarily the first message received after issuing the command. If the mobile sensor is about to send the data message at the same time when client is sending its command, the client may receive the data message before the acknowledgement. For example:
- Mobile road sensor is set to transmit SEND DATA response messages at 1 Hz.
- Client sends the GET STATUS message.
- Mobile road sensor starts sending SEND DATA at the same time with the client.
- Client receives the SEND DATA message.
- Client receives the GET STATUS response.