====== Предложения по информационному обмену c Ретайм по протоколу TCP/IP ====== \\ 1. Передача ТС от системы АСДК «РЕТАЙМ» в систему ГИД «УРАЛ-ВНИИЖТ» осуществляется по протоколу TCP/IP; \\ 2. Программа передачи ТС (РЕТАЙМ) открывает серверный сокет, программа приема ТС (УРАЛ-ВНИИЖТ) открывает клиентский сокет \\ 3. Программа передачи передает данные по контролируемой станции как после обнаружения изменений состояния контролируемых объектов, так и периодически. При этом передающая программа гарантирует время между последовательными пакетами станции не более 60 секунд. Если нет изменений за это время, то выдается текущее состояние. \\ 4. Данные по каждой станции передаются одним пакетом, содержащим информацию о состоянии всех контролируемых объектов на данной станции; \\ 5. Передача следующего пакета производится после получения квитанции об успешном приеме предыдущего. Квитанцию ожидаем не более 5 секунд после передачи информационного пакета. Если за это время квитанция не получена, то передача продолжается со следующего информационного пакета. Неквитированный информационный пакет считается потерянным. ===== Предлагаемый формат пакета квитанции: ===== * «TK» – идентификатор пакета. * MsgNum (4b) – порядковый номер сообщения, на которое выдается квитанция. \\ ВНИМАНИЕ: квитанции только позволяют регулировать скорость потока. ===== Предлагаемый формат информационного пакета: ===== * ‘TS’ – идентификатор пакета. * MsgNum (4b) – порядковый номер сообщения (увеличивается на 1 при каждом последующем). Введение такого номера позволит избежать повторной обработки данных уже принятых данных и обнаруживать потерю данных. Нумерация начинается с 1 при запуске программы и является сквозной для всех сообщений ( независимо от количества передаваемых станций ). * StationCode (4b) – код ЕСР станции. * Type (1b) – тип данных (СЦБ, ДИСК, ПОНАБ и др.) * Date, Time – дата и время события (7b) – d-m-y-h-n-s-t, \\ где d (1b) – число (день); \\ m (1b) – месяц; \\ y (2b) – год; \\ h (1b) – часы; \\ n (1b) – минуты; \\ s (1b) – секунды; * Length (2b) - длина буфера данных. * CRC(2b) - Контрольная сумма всех предыдущих полей ( от идентификатора пакета и до Length включительно). * Data – буфер данных. * CRC(2b) - Контрольная сумма только данных. Для типа пакета СЦБ формат данных в буфере следующий: 765432107654321076543210 … (7 – старший бит, 0 – младший бит) \\ 76 – состояние объекта № 1 \\ 54 – состояние объекта № 2 \\ 32 – состояние объекта № 3 \\ 10 – состояние объекта № 4 \\ 76 – состояние объекта № 5 \\ … и т.д. Нумерация объектов задается в таблице соответствия. Состояние объекта определяется 2-мя битами по следующему правилу: * 00 – состояние логического «0» * 01 – состояние логической «1» * 10 – состояние мигания * 11 – состояние не определено