Автор: | Света [ 30.03.2018, 13:58 ] |
Тема блога: | Константы и протокол межлокомотивного обмена |
Выполняя ранее данное обещание: выкладываю здесь описание использованных для межлокомотивного обмена константы и используемые под этими константами структуры записей. POSITION_DATA = 1818190202 Используется для функцией определения взаимного расположения единиц ПС. Протокол: код - 1818190202, данные - "XFYFXRYRID" XF, YF, XR, YR - координаты меток, спереди и сзади, умноженные на десять и занимающие строго по 5 знакомест ID - внутренний номер ПС Пример: "6933.5115.6926.4945.60722" ("60722" - № ПС) Рассылка - при изменении длины состава PROBE_COUPLINGS = 1818190203 Используется для определения состояния сцепок Протокол: код - 1818190203, данные - "blah" Не обрабатывается Рассылка - при изменении длины состава ENGINE_SYNCHRO_CONTROL = 1818190301 Используется для синхронизации контролов. Ведущая секция рассылает данные, ведомые принимают и обрабатывают. Протокол: код - 1818190301, данные - "S:GR:TM:TC:зарезервировано:зарезервировано:зарезервировано:E" S - стартовый символ GR - давление в главном резервуаре TM - давление в тормозной магистрали TC - давление в тормозных цилиндрах зарезервировано - не используется E - завершающий символ Пример: "S:8.00:4.83:0.00:E" Рассылка - покадрово ENGINE_LOCK_CONTROL = 1818190401 Используется для блокирования/разблокировки контролов в других секциях. Протокол: код - 1818190401, данные - "имя_контрола:значение:ID_отправителя" Имя_контрола - название, заданное контролу в главном конфиге Значение - число, 0 снимает блокировку, 1 - устанавливает ID_отправителя - внутренний номер ПС Пример: "Reverser:1:56218" ("56218" - № ПС) (заблокирует реверсор в локомотиве, принявшем сообщение) Рассылка - при необходимости ENGINE_STATE_QUERY = 1818190501 Используется для выяснения, какое значение имеет контрол в секции, которой адресован запрос Протокол: код - 1818190501, данные - "Query:имя_адресата:имя_контрола:имя_отправителя" или код - 1818190501, данные - "Answer:значение:имя_спрашивающего" "Query", "Answer" - кодовые слова, указывающие статус сообщения (вопрос или ответ) Имя_адресата - внутренний номер ПС, который опрашивается Имя_отправителя, имя_спрашивающего - внутренний номер ПС, который сделал запрос и ждет ответ Пример: вопрос - "Query:56218:Reverser:60722" ответ - "Answer:1:60722" Рассылка - при необходимости ENGINE_REMOTE_CONTROL = 1818190601 Используется для дистанционного управления Протокол: код - 1818190501, данные - "имя_локомотива:имя_контрола:значение:индекс" Имя_локомотива - внутренний номер локомотива, который отправил команду Имя_контрола - устанавливаемый контрол, название, заданное контролу в главном конфиге Индекс - число. Если "1", то команду обработает локомотив, непосредственно сцепленный с отправителем, если "2" - команда будет переслана следующему локомотиву (индекс "2" будет переписан на "1") Пример: "56218:Reverser:1:1" ("56218" - № ПС) (установит реверсор в соседнем локомотиве, при условии, что локомотивы правильно сцеплены) Рассылка - при необходимости TRANSLATE_CONTROL_VALUE = 1818190701 Используется для обмена данными всеми секциями, соединенными между собой непосредственно Протокол: код - 1818190701, данные - пока пусто DEF_LEADING_LOCOMOTIVE = 1818190801 Используется для определения старшинства локомотивов на основании внутренних номеров Протокол: код - 1818190801, данные - "leading_control:имя локомотива:query" или код - 1818190801, данные - "leading_control:имя локомотива:answer" Имя_локомотива - внутренний номер локомотива, который отправил сообщение "Query", "Answer" - кодовые слова, указывающие статус сообщения (вопрос или ответ) Пример: вопрос - "leading_control:56218:query" ответ - "leading_control:56218:answer" Рассылка - при старте сценария в локомотивах под управлением AI INTERVIEW_CONSIST = 1818190901 Используется для сбора локомотивом информации по составу Протокол: код - 1818190901, данные - "inquiry" - первый проход, запрос или код - 1818190901, данные - "data_capture:кол-во вагонов:длина:вес:к-во осей" - второй проход, сбор информации или код - 1818190901, данные - "answer:кол-во вагонов:длина:вес:к-во осей" - третий проход, ответ Отправленный запрос проходит вдоль всего состава, пока не дойдет до крайнего вагона/локомотива, который меняет статус сообщения на "сбор данных" и отсылает его обратно. Передвигаясь под статусом "сбор данных", сообщение модифицируется каждой единицей ПС, пока не дойдет до крайнего вагона/локомотива с другой стороны, который сменит статус сообщения на "ответ" и отошлет обратно. С этим статусом сообщение будет пересылаться до тех пор, пока его не перехватит локомотив-отправитель. Рассылка - при необходимости |
Часовой пояс: UTC + 4 часа | |
Powered by phpBB © 2002, 2006 phpBB Group www.phpbb.com |
Blogs powered by User Blog Mod © EXreaction www.lithiumstudios.org |