Changes between Version 4 and Version 5 of AdcProtocol
- Timestamp:
- Apr 22, 2019, 6:59:32 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AdcProtocol
v4 v5 8 8 Рис 1. 9 9 10 - Поле FLAG имеет размер 1 байт, предназначено для определения приемником границ пакета, значение поля фиксированное $7E. Флаги могут постоянно передаваться в сети между пакетами. Если сетевой элемент обнаруживает байт, не являющийся флагом, он тем самым уведомляется о начале пакета. При обнаружении следующего флага, элемент будет знать, что поступил полный пакет.10 - Поле FLAG имеет размер 1 байт, предназначено для определения приемником границ пакета, значение поля фиксированное 0x7E. Флаги могут постоянно передаваться в сети между пакетами. Если сетевой элемент обнаруживает байт, не являющийся флагом, он тем самым уведомляется о начале пакета. При обнаружении следующего флага, элемент будет знать, что поступил полный пакет. 11 11 - Поле ADDR имеет размер 1 байт, предназначено для передачи адресной информации и трактуется по-разному в зависимости от направления движения пакета. Для пакета исходящего от сетевого модуля ADDR=0. Для пакета исходящего из UPS-1200 ADDR=0x7F. 12 - Поле CMND имеет размер 1 байт, предназначено для кодирования команд или ответов. Значения $00-$7F кодируют команды, значения $80-$FF - ответы. Кодировкакоманд и ответов приведена ниже.13 - Поле DATA может быть размером 0-74 байт, содержимое зависит от значения поля CMND (см. п. 5).12 - Поле CMND имеет размер 1 байт, предназначено для кодирования команд или ответов. Значения 0x00-0x7F кодируют команды, значения 0x80-0xFF - ответы. Кодировка поддерживаемых команд и ответов приведена ниже. 13 - Поле DATA может быть размером 0-74 байт, содержимое зависит от значения поля CMND 14 14 - Поле CSUM имеет размер 1 байт, предназначено для контроля полей ADDR, CMND и DATA. Вычисляется как ИСКЛЮЧАЮЩЕЕ ИЛИ всех байтов в контролируемых полях. 15 15 16 16 === 2. Кодирование === 17 17 Для предотвращения ложного распознавания границ пакета, все передаваемые данные, кроме полей FLAG, должны подвергаться следующей процедуре: 18 - если значение байта данных есть $7E, то он заменяется двумя байтами $7D и $5E;19 - если значение байта данных есть $7D, то он заменяется двумя байтами $7D и $5D.18 - если значение байта данных есть 0x7E, то он заменяется двумя байтами 0x7D и 0x5E; 19 - если значение байта данных есть 0x7D, то он заменяется двумя байтами 0x7D и 0x5D. 20 20 Все размеры полей приведены без учета описанных выше замен. 21 21 После распознавания пакета производится: