User Protocol Introduction
User Protocol
Section titled “User Protocol”Canvas supports User Protocol as a way to user user-defined protocols for advanced device communication. No additional settings will appear on the selection of this protocol.

Variables
Section titled “Variables”| Variable Name | Tag Type | Description |
|---|---|---|
| txData | STRING | This holds the frame data which will be sent. Writing to the tag triggers a send. |
| txDataSend | BOOL | Writing to this value triggers the data held by "TX Data" to be sent. |
| rxData | STRING | This holds the current frame data which was received. The user must write to "RX Queue Get Next" to move the front frame in the RX Queue. |
| rxDataSize | UINT32 | This holds the size of the data held by the "RX Data" variable. |
| rxDataSizeLimit | UINT32 | Maximum number of bytes RX Data can hold. |
| rxQueueSize | UINT32 | This holds the current number of frames inside the RX Queue. |
| rxQueueSizeLimit | UINT32 | Maximum number of frames the RX Queue can hold. |
| rxQueueGetNext | BOOL | Writing to this value causes the front frame in the RX Queue to be written to the "RX Data" variable. |
| txSuccessCount | UINT32 | Records the total number of successfully sent frames. |
| txFailureCount | UINT32 | Records the total number of unsuccessfully sent frames. |
| rxCount | UINT32 | Records the total number of received frames. |
| rxDataPrefix | STRING | Used to determine the start of an incoming frame. |
| rxDataSuffix | STRING | Used to determine the end of an incoming frame. |
| rxDataRegex | STRING | Used to determine the start/end/structure of an incoming frame. |
| rxDataExpectedSize | UINT32 | Used to determine the end of an incoming frame. |