CRC

Web references

http://en.wikipedia.org/wiki/Cyclic_redundancy_check

These sites explain the various CRC that currently exist:

http://en.wikipedia.org/wiki/Cyclic_redundancy_check

http://www.nationmaster.com/encyclopedia/Cyclic-redundancy-check#Computation_of_CRC

http://regregex.bbcmicro.net/crc-catalogue.htm

On-line CRC calculation

http://www.lammertbies.nl/comm/info/crc-calculation.html

http://www.zorc.breitbandkatze.de/crc.html

Protocoltool

ProtocolTool supports many CRC and checksum algorithms. It can use 8-bit to 64-bit CRC.

Usually, the Checksum or CRC is placed at the end of the packet. Checksum/CRC may not only be placed at the end of the checked block, but elsewhere also. It's assumed that only one check is done for a given packet, either one of the checksum types or one of the CRC types.

If you're building your own protocol from scratch, it's usually easier to send the checksum/CRC after the data, since the CRC or checksum is calculated 1 byte at a time (on the fly) and placed or sent last. However, for any reason, there are some protocols where the CRC or checksum may be sent before the data. While this complicates life a bit for programmers, protocoltool supports this.

Default check method

The default CRC is CRC-16, it's selectable from a pull down menu in the menubar or specifiable when loading a string file.

pulldown menu check method

When a string file is loaded, a command line such as below will change the default to the check method specified; the pulldown menu will be updated. After loading the entries file, the user can change the default again through the pull down menu. Commands are not displayed/loaded in the send entries.

% crc-32

CRC calculation

To calculate the checksum/CRC automatically, enclose the data to be checked between <check> and </check>: <check> would use the default method. See Tokens for all the available algorithms

<crc-16> "123456789" </check>

Here, the check method is specified explicitly. </check> is the default place where protocoltool will insert a checksum.

Sending this message will result in:

31 32 33 34 35 36 37 38 39 BB 3D

For convenience, curly braces, i.e.: {} can be used instead of <check> and </check>

In the screen capture above, bracket [] are used for enclosing the data for length calculation.

CRC insertion

Normally at the end of the checked block, the result of the Checksum/CRC calculation can be placed elsewhere by using the <check-value> token.

00 <check-value> 00 00 <crc-16> "123456789" </check>

Sending this message will result in:

00 BB 3D 00 00 31 32 33 34 35 36 37 38 39

CRC List

List of all the supported CRC algorithms and their specifications. The tar ball contains several testable examples in docs/examples.

Custom CRC

The user can set the custom CRC's parameters in the middle part of the control panel.

Once the parameters are set, pressing Test will display on the status bar the result of the CRC applied to a fixed test string: "123456789".

The custom CRC can be used

control panel

** PLEASE DESCRIBE THIS IMAGE **

Valid HTML 4.01 Strict