Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Максимальный размер фрейма составляет 255 байт, общий размер технической полей фрейма - 10 байт. Таким образом, максимально возможный размер полезных данных возможен до 245 байт.

ПолеADDRESSFNLENPAYLOADIDCRC
ФорматBCD MSBUINT8UINT8BLOBUINT16UINT16
Размер4110...24522
Info

Для многобайтовых полей по умолчанию (если не указано явно) используется прямой порядок байт (LSB). Поля FLOAT32 и FLOAT64 являются числами IEEE.754 одинарной и двойной точности соответственно.

...

Code Block
languagecpp
titleПример кода на языке C89
#include < stddef<stddef.h>
#include <stdint.h>

uint16_t crc(void const *data, size_t size)
{
	uint8_t i;
	uint16_t result = 0xFFFF;
	uint8_t const *buf = (uint8_t const *)data;
	
	while (size--)
	{
		result ^= *buf++;
		for (i = 0; i < 8; i++)
		result = (result & 1) ? (result >> 1) ^ 0xA001 : result >> 1;
	}
	
	return result;
}

...