Виталий писал(а):2. Программная документация описывающая интерфейсы модулей и логику их работы.
Вот:
Протокол работы с нулевой версией первого модуля:Каждый порт может быть включен в один из режимов работы:
0. Цифровой вход (в этом режиме запись в порт означает включение/выключение встроенного подтягивающего резистора, а чтение - получение значения на входе порта);
1. Цифровой выход (в этом режиме запись в порт означает выставление выхода в соответствующее TTL-значение, а чтение - извлечение этого значения);
В примерах модуль имеет адрес FF, "Tx: " - передаваемые в RS-232 команды, адресованные модулю, "Rx: " - получаемые из RS-232 в ответ сообщения.
===============================================
Команда 1. Установить режим работы порта - отправить 2 байта и получить 0 байт:
- первый байт 0x20..0x38 для портов 0x00..0x18 соответственно;
- второй байт 0x00 или 0x01 - режим работы;
Пример (сделать порт 0х08 цифровым выходом):
Tx: QFF002801
Rx: R===============================================
Команда 2. Записать значение в порт - отправить 2 байта и получить 0 байт:
- первый байт 0x00..0x18 для портов 0x00..0x18 соответственно;
- второй байт 0x00 / 0x01 - значение;
Пример (выставить порт 0х08 в единичку):
Tx: QFF000801
Rx: R===============================================
Команда 3. Прочитать режим работы порта порта - отправить 1 байт и получить 1 байт:
- первый байт 0xA0..0xB8 для портов 0x00..0x18 соответственно;
- прочтенный байт - 0x00 / 0x01 - текущий режим работы порта;
Пример (прочитать режим работы порта 0х08 ):
Tx: QFF01A8
Rx: R01===============================================
Команда 4. Прочитать значение порта - отправить 1 байт и получить 1 байт:
- первый байт 0x80..0x98 для портов 0x00..0x18 соответственно;
- прочтенный байт - 0x00 / 0x01 - значение порта;
Пример (прочитать состояние порта 0х0C - цифрового входа):
Tx: QFF018C
Rx: R00