-
-
Notifications
You must be signed in to change notification settings - Fork 16
How to Use CommsChampion Tools
The CommsChampion Tools are there to provide consistent environment for binary protocols visualisation, traffic monitor and analysis. They are all plugin based. Plugins are used to select I/O socket, protocol definition itself as well as zero or more data filters in between.
The "socket" and "protocol" plugins are "must have" ones, without them the tools won't be able to operate properly. The "filters", on the other hand, are optional. They need to be used when there are any additional transport layers between the raw data received by the I/O socket and the data delivered to the analysed communication protocol for processing. Good example would be analysing custom protocol, when messages are delivered using MQTT-SN transport protocol over UDP/IP socket. The plugins configuration would look like this:
The filters may modify the incoming data prior to reporting the result to the following filter or protocol itself, or drop the data altogether when its irrelevant to the other filters or protocol itself. The filters are also allowed to generate data regardless of any protocol activity.
The "mqttsn filter" plugin from the example above is responsible to manage the whole underlying MQTT-SN protocol communication while forwarding only received "protocol" relevant data. When the "protocol" plugin generates data to be sent, the "mqttsn filter" wraps it in its internal PUBLISH message and forwards the result to the socket to be delivered over the I/O link.
The main application of the provided CommsChampion Tools is called cc_view. It is a GUI application, which allows visual analysis of the exchanged messages. When the application is started, the only available button is in the top left corner. It must be used to select plugins to load:
When clicked the plugin selection dialog pops up. The left side contains available plugins. They are split by their types: "sockets" are at the top, "protocols" are at the bottom and "filters" are in the middle. Selection of the plugin is performed via double-click on it.
When plugin is selected it appears at the top right area.
Once selected, it becomes possible to configure the plugin if needed.
The save/load of the plugins with their configuration is also available.
When both necessary "socket" and "protocol" are selected, the "Apply" button at the bottom right becomes available. When clicked the selected plugins will be applied and rest of the buttons become available.
Depending on the socket type, the connection to the server / device may be required. It is performed by clicking to the button at the top left corner.
The top left area is used to display all the messages that have been sent or received. The button allows reception of the incoming messages. The "toggle" buttons to the right () allow control of what kind of messages to display. They allow to enable / disable display of received and sent messages as well as display of detected garbage input.
The bottom left area is used to create and send messages of the protocol. The button can be used to create and configure new single message. The button can be used to create new message(s) out of raw data dump.
When is clicked, new dialog pops up where the selected protocol message can be chosen and values configured.
The bottom right area allows selection of the wrapping "transport" information to be displayed above
or raw bytes of the serialised message:
The top left area allows to configure multiple sends of the same message. The "Initial delay" specifies the delay from the first sent of the previous message in the "send" list.
Once added, the newly created message is prefixed with configured delay and repetition information.
The first number is the initial delay in milliseconds, second number is a period between sends also in milliseconds, and the third number is amount of times the message is going to be sent (0 means infinite).
The displayed messages in the top left area, which shows the traffic of the incoming / outgoing messages, are prefixed with the timestamp information.