IV. ASN.1-спецификация протокола взаимодействия ТС ОРМ и ПУ ОРМ
IV. ASN.1-спецификация протокола взаимодействия
ТС ОРМ и ПУ ОРМ
CONTROL-MESSAGES DEFINITIONS IMPLICIT TAGS ::=
BEGIN
IMPORTS MachineID,
CellID,
MailID,
ObjectUNI,
DateAndTime,
LogicalOperation,
PostUNIItem,
PostItem,
ModuleId
FROM SORM-TYPES;
ControlMessage ::= CHOICE {
auth-request [0] AuthenticateSorm, --
команда аутентификации ПУ ОРМ на ТС ОРМ
auth-response [1] AuthenticateSormResponse, --
ответ на команду аутентификации
heartbeat [2] ChannelHeartbeat, --
команда проверки связи ПУ ОРМ с ТС ОРМ
heartbeat-response [3] ChannelHeartbeatResponse, --
ответ на команду проверки связи ПУ ОРМ с ТС ОРМ
get-time [4] GetSormTime, --
команда запроса времени ТС ОРМ
get-time-response [5] GetSormTimeResponse, --
ответ на команду запроса времени ТС ОРМ
set-time [6] SetSormTime, --
команда коррекции времени ТС ОРМ
set-time-response [7] SetSormTimeResponse, --
ответ на команду коррекции времени ТС ОРМ
start-transfer [8] StartDataTransfer, --
команда начала ввода данных с ТС ОРМ на ПУ ОРМ
start-transfer-response [9] StartDataTransferResponse, --
ответ на команду начала ввода данных с ТС ОРМ на ПУ ОРМ
stop-transfer [10] StopDataTransfer, --
команда окончания ввода данных с ТС ОРМ на ПУ ОРМ
stop-transfer-response [11] StopDataTransferResponse, --
ответ на команду окончания ввода данных с ТС ОРМ на ПУ ОРМ
create-uni [12] CreateUNI, --
команда постановки объекта на контроль
create-uni-response [13] CreateUNIResponse, --
ответ на команду постановки объекта на контроль
drop-uni [14] DropUNI, --
команда снятия объекта с контроля
drop-uni-response [15] DropUNIResponse, --
ответ на команду снятия объекта с контроля
force-uni-command [16] ForceUNIMailItemCommand, --
команда принудительного отбора отправления
force-uni-command-response [17] ForceUNIMailItemCommandResponse, --
ответ на команду принудительного отбора отправления
match-uni-notification [18] MatchUNINotification, --
извещение о срабатывании ОК для отправления
match-uni-notification-ack [19] MatchUNINotificationAck, --
подтверждение о срабатывании ОК для отправления
cancel-item-segregation [20] CancelItemSegregation, --
команда отмены решения об смене ячейки сортировки
cancel-item-segregation-ack [21] CancelItemSegregationAck, --
подтверждение команды отмены решения об смене ячейки сортировки
send-encoded-image [22] SendEncodedImage, --
команда отправки на ТС ОРМ результатов видеокодирования изображения
оператором
send-encoded-image-response [23] SendEncodedImageResponse, --
ответ на команду отправки результатов видеокодирования
segregated-item-notification [24] SegregatedMailNotification, --
извещение о завершении сортировки отправления с измененной ячейкой назначения
segregated-item-notification-ack [25] SegregatedMailNotificationAck, --
подтверждение извещения о завершении сортировки отправления с измененной
ячейкой назначения
trap [26] Trap,
trap-ack [27] TrapAck
}
AuthenticateSorm ::= SEQUENCE {
user-name UTF8String (SIZE (1..64)), -- пользователь ТС ОРМ в СО
user-password OCTET STRING (SIZE(8)) -- пользовательский пароль
}
AuthenticateSormResponse ::= BOOLEAN -- признак успешности аутентификации
ChannelHeartbeat ::= NULL
ChannelHeartbeatResponse ::= NULL
StartDataTransfer ::= NULL
StartDataTransferResponse ::= BOOLEAN -- признак успешности приема команды
начала ввода данных
StopDataTransfer ::= NULL
StopDataTransferResponse ::= BOOLEAN -- признак успешности приема команды
окончания ввода данных
GetSormTime ::= NULL
GetSormTimeResponse ::= DateAndTime
SetSormTime ::= DateAndTime
SetSormTimeResponse ::= BOOLEAN -- признак успешности коррекции времени на
всех блоках ТС ОРМ
CreateUNI ::= CHOICE {
uni-text [0] UNITextObject, -- контроль по распознанной текстовой
информации
uni-stamp [1] UNIStampObject, -- контроль по образцу штемпеля организации
uni-handwrite-sample [2] UNIHandwriteSample
}
UNITextObject ::= SEQUENCE {
machine-ids SEQUENCE OF MachineID, -- идентификатор
подключенной к ТС ОРМ СО
uni-criteria SEQUENCE OF UNITextParameter -- критерии отбора для объекта
}
UNITextParameter ::= CHOICE {
separator [0] LogicalOperation, -- логический оператор связки
find-mask [1] UNIRequestedTextIdentifiers -- параметр запроса
}
UNIRequestedTextIdentifiers ::= SEQUENCE {
uni-criteria PostUNIItem, -- критерий в
записи об отправлении для контроля
mispelling-distance INTEGER (1..10) OPTIONAL -- количество
ошибок ввода, заполняется для строковых критериев
}
UNIStampObject ::= SEQUENCE {
machine-ids SEQUENCE OF MachineID,
stamp-data SEQUENCE OF StampData -- образцы штемпеля
организации в различных разрешениях
}
StampData ::= SEQUENCE {
resolution-dpi INTEGER (0 .. 1000),
stamp-data OCTET STRING -- образец штемпеля
}
UNIHandwriteSample ::= SEQUENCE {
resolution-dpi INTEGER (0 .. 1000),
sample OCTET STRING -- образец почерка
}
CreateUNIResponse ::= SEQUENCE {
uni-created ObjectUNI,
machine-id MachineID, -- идентификатор СО, на которую установлен объект
uni-successful BOOLEAN,
-- признак успешной постановки объекта на контроль
uni-error-description UTF8String (SIZE (1 .. 256)) OPTIONAL --
краткое описание ошибки, если обнаружена
}
DropUNI ::= ObjectUNI --- идентификатор объекта для снятия с контроля
DropUNIResponse ::= SEQUENCE {
uni-dropped ObjectUNI,
uni-successful BOOLEAN, ---
признак успешного снятия объекта с контроля
uni-error-description UTF8String (SIZE (1 .. 256)) OPTIONAL ---
краткое описание ошибки, если обнаружена
}
ForceUNIMailItemCommand ::= MailID
ForceUNIMailItemCommandResponse ::= SEQUENCE {
mail-id MailID, -- идентификатор принудительно отобранного отправления
cell-id CellID, -- идентификатор выделенной ячейки для
целей ОРМ на СО, в которую сортируется отправление
successful BOOLEAN, -- признак успешной передачи команды
принудительного отбора на СО
error-description UTF8String (SIZE (1 .. 256)) OPTIONAL --- краткое
описание ошибки, если обнаружена
}
MatchUNINotification ::= SEQUENCE {
mail-id MailID,
matched-unis SEQUENCE OF ObjectUNI
}
MatchUNINotificationAck ::= NULL
CancelItemSegregation ::= MailID
CancelItemSegregationAck ::= SEQUENCE {
result BOOLEAN -- true - ПО еще не было отобрано, false
- ПО уже было отобрано
}
SendEncodedImage ::= SEQUENCE {
mail-id MailID, -- идентификатор почтового отправления
post-item PostItem, -- введенная оператором при
видеокодировании изображения информация
additional-data SEQUENCE OF AdditionalEncodedData OPTIONAL --
дополнительная полученная при видеокодировании текстовая информация по
поверхностям отправлений
}
AdditionalEncodedData ::= UTF8String (SIZE (1 .. 512))
SendEncodedImageResponse ::= NULL
SegregatedMailNotification ::= SEQUENCE {
mail-id MailID, -- идентификатор почтового
отправления для которого изменяется ячейка сортировки
last-time DateAndTime, -- дата и время завершения
сортировки отправления с измененной ячейкой назначения
matched-unis SEQUENCE OF ObjectUNI -- список объектов контроля, в
соответствии с которыми был произведен отбор
}
SegregatedMailNotificationAck ::= NULL
Trap ::= SEQUENCE {
module-id ModuleId,
description UTF8String (SIZE (1 .. 1024))
}
TrapAck ::= NULL
END
DATA-MESSAGES DEFINITIONS IMPLICIT TAGS ::=
BEGIN
IMPORTS MachineID,
MailID,
PostItem
FROM
SORM-TYPES;
DataMessage ::= CHOICE {
request [0] SormDataBlock,
response [1] SormDataBlockAck
}
SormDataBlock ::= SEQUENCE {
last-time DateAndTime, -- дата и время формирования изображения на
оборудовании СО
mail-type ENUMERATED {
mail (0), -- конверт
flat (1), -- flat
mail-parcel (2) -- посылка
},
mail-id MailID, -- идентификатор почтового отправления
direction Direction, -- направление следования ПО
mail-item-images MailItemImages, -- изображения поверхностей
почтового отправления, полученные на СО
post-item PostItem, -- результат распознавания
изображений отправления на ТС ОРМ
ocr-status OCRStatus -- статус распознавания на ТС ОРМ
}
Direction ::= ENUMERATED {
in-zone (0), -- направление в зоне обслуживания
out-zone (1) -- направление из зоны обслуживания
}
OCRStatus ::= ENUMERATED {
not-recognized (0), -- изображения сторон ПО не распознаны
partially-recognized (1), -- изображения сторон ПО частично распознаны
(требуется видеокодирование)
full-recognized (2) -- изображения сторон ПО полностью распознаны
}
MailItemImages ::= SEQUENCE {
side-0 [0] OCTET STRING OPTIONAL, -- изображение лицевой стороны
отправления
side-1 [1] OCTET STRING OPTIONAL, -- изображение обратной стороны
отправления
side-2 [2] OCTET STRING OPTIONAL, -- изображение боковой стороны
отправления (для посылок)
side-3 [3] OCTET STRING OPTIONAL -- изображение еще стороны
отправления
}
SormDataBlockAck ::= NULL
END
MANAGEMENT-MESSAGES DEFINITIONS IMPLICIT TAGS ::=
BEGIN
EXPORTS ManagementMessage;
IMPORTS ModuleId
FROM SORM-TYPES;
ManagementMessage ::= CHOICE {
request [0] ManagementRequest,
response [1] ManagementResponse
}
--- тип сообщения "команда управления ТС СОРМ"
ManagementRequest ::= CHOICE {
get-structure [0] GetStructureRequest, ---
запрос на получение структуры ТС ОРМ - КТС и модулей СПО
get-module-config [1] GetModuleConfigRequest, ---
запрос на получение конфигурации КТС/модуля СПО
set-module-config [2] SetModuleConfigRequest, ---
запрос на изменение конфигурации КТС/модуля СПО
check-module [3] CheckModuleRequest, ---
запрос на получение состояния модуля
get-module-types [4] GetModuleTypesRequest ---
запрос на получение типов модулей КТС и СПО
}
--- запрос на получение структуры ТС ОРМ - КТС и модулей СПО
GetStructureRequest ::= NULL
--- запрос на получение конфигурации КТС/модуля СПО
GetModuleConfigRequest::= CHOICE {
hw-modules-list [0] RequestedHardwareModules, ---
перечень идентификаторов узлов КТС ТС ОРМ
sw-modules-list [1] RequestedSoftwareModules ---
перечень идентификаторов модулей СПО ТС ОРМ
}
RequestedHardwareModules ::= SEQUENCE OF ModuleId --- перечень
идентификаторов узлов КТС ТС ОРМ
RequestedSoftwareModules ::= SEQUENCE OF ModuleId --- перечень
идентификаторов модулей СПО ТС ОРМ
--- запрос на изменение конфигурации КТС/модуля СПО
SetModuleConfigRequest::= SEQUENCE {
module-id ModuleId, --- идентификатор конфигурируемого модуля
module-config ConfiguratedModule --- устанавливаемая в модуль конфигурация
}
ConfiguratedModule ::= CHOICE {
sw-module [0] SormSoftwareModule, --- для узла КТС
hw-module [1] SormHardwareModule --- для узла СПО
}
--- запрос на получение состояния модуля
CheckModuleRequest::= RequestedModulesList
RequestedModulesList ::= CHOICE {
sw-modules [0] RequestedHardwareModules, ---
идентификаторы узлов КТС, для которых запрашивается состояние
hw-modules [1] RequestedSoftwareModules ---
идентификаторы модулей ТС ОРМ, для которых запрашивается состояние
}
--- запрос на получение типов модулей КТС и СПО
GetModuleTypesRequest ::= NULL
--- параметр модуля
ModuleParameter ::= SEQUENCE {
parameter-name UTF8String (SIZE (1 .. 256)), --- наименование параметра
read-only BOOLEAN, --- контролируемый или измеряемый параметр
parameter-value ParameterValue --- значение параметра
}
--- варианты значений параметров
ParameterValue ::= CHOICE {
string [0] UTF8String (SIZE (1 .. 256)),
integer [1] INTEGER (0 .. 999999999),
boolean [2] BOOLEAN
}
ModuleParameters ::= SEQUENCE OF ModuleParameter
SormSoftwareModule ::= SEQUENCE {
module-id ModuleId, --- уникальный идентификатор данного модуля
hardware-module-id ModuleId, --- идентификатор КТС, на котором работает
данный блок модуля СПО
block-name INTEGER (0 .. 1024), --- номер блока СПО модуля
module-name UTF8String (SIZE (1 .. 512)), --- наименование модуля
module-type INTEGER (1 .. 512), --- идентификатор типа модуля
module-parameters ModuleParameters, --- список параметров модуля
sub-modules-list SubmodulesList OPTIONAL --- субмодули
}
SubmodulesList ::= SEQUENCE OF SormSoftwareModule
SormHardwareModule ::= SEQUENCE {
module-id ModuleId, --- уникальный идентификатор данного модуля
block-name INTEGER (0 .. 1024), --- номер блока КТС
module-name UTF8String (SIZE (1 .. 512)), --- наименование модуля
module-parameters HwParameterGroups --- значение группы параметров КТС
}
HwParameterGroup ::= SEQUENCE {
group-name UTF8String (SIZE (1 .. 512)), --- наименование
группы параметров для КТС
module-parameters ModuleParameters --- перечень параметров для КТС
}
HwParameterGroups ::= SEQUENCE OF HwParameterGroup
SormSoftwareModules ::= SEQUENCE OF SormSoftwareModule
SormHardwareModules ::= SEQUENCE OF SormHardwareModule
--- тип сообщения "ответ на команду управления ТС ОРМ"
ManagementResponse ::= CHOICE {
get-structure [0] GetStructureResponse, ---
ответ на запрос получения структуры ТС ОРМ - КТС и модулей СПО
get-module-config [1] GetModuleConfigResponse, --- ответ на
запрос получения конфигурации КТС/модуля СПО
set-module-config [2] SetModuleConfigResponse, --- ответ на
запрос изменения конфигурации КТС/модуля СПО
check-module [3] CheckModuleResponse, ---
ответ на запрос получения состояния модуля
get-module-types [4] GetModuleTypesResponse ---
ответ на запрос получения типов модулей КТС и СПО
}
--- ответ на запрос получения структуры ТС ОРМ - КТС и модулей СПО
GetStructureResponse ::= SEQUENCE {
sw-modules SormHardwareModules, --- перечень всех узлов КТС
hw-modules SormSoftwareModules --- перечень всех модулей СПО ТС ОРМ
}
--- ответ на запрос получения конфигурации КТС/модуля СПО
GetModuleConfigResponse ::= SEQUENCE {
sw-modules SormHardwareModules, --- конфигурации запрошенных узлов КТС
hw-modules SormSoftwareModules --- конфигурации запрошенных модулей СПО
ТС ОРМ
}
--- отчет на запрос изменения конфигурации КТС/модуля СПО
SetModuleConfigResponse::= ConfiguratedModule ---
установленная в модуль конфигурация
--- ответ на запрос получения состояния модуля
CheckModuleResponse ::= CHOICE {
hw-modules [0] SormHardwareModules, ---
текущее состояние запрошенных модулей СПО ТС ОРМ
sw-modules [1] SormSoftwareModules ---
текущее состояние запрошенных узлов КТС
}
--- ответ на запрос получения типов модулей КТС и СПО
GetModuleTypesResponse ::= SEQUENCE OF ModuleType
ModuleType ::= SEQUENCE {
module-type INTEGER (1 .. 512), --- идентификатор типа модуля
type-description UTF8String (SIZE (1 .. 128)) --- расшифровка типа модуля
}
END
POST-TYPES DEFINITIONS IMPLICIT TAGS ::=
BEGIN
EXPORTS
PostItem,
PostUNIItem;
PostUNIItem ::= CHOICE {
sender-info [0] UTF8String (SIZE (1 .. 1024)), -- информация об отправителе
receiver-info [1] UTF8String (SIZE (1 .. 1024)), -- информация об адресате
почтового отправления
sender-address [4] UNIAddress, -- адрес доставки отправления
receiver-address [5] UNIAddress, -- адрес доставки отправления
post-description [6] UTF8String (SIZE (1 .. 1024)) -- заявленное
описание содержимого отправления
}
UNIAddress ::= CHOICE {
structured-address [0] UNIStructuredAddress,
country-code [1] UTF8String (SIZE (1 .. 3)),
index [2] UTF8String (SIZE (1 .. 12)),
unstructured-address [3] UTF8String (SIZE (1 .. 1024))
}
UNIStructuredAddress ::= CHOICE {
country [0] UTF8String (SIZE (1 .. 128)), --- страна
region [1] UTF8String (SIZE (1 .. 128)), --- область
zone [2] UTF8String (SIZE (1 .. 128)), --- район, муниципальный округ
city [3] UTF8String (SIZE (1 .. 128)), ---
город, поселок, деревня
street [4] UTF8String (SIZE (1 .. 128)), --- улица
building [5] UTF8String (SIZE (1 .. 128)), --- дом, строение
build-sect [6] UTF8String (SIZE (1 .. 128)), --- корпус
apartment [7] UTF8String (SIZE (1 .. 128)), --- квартира, офис
priv-box [8] UTF8String (SIZE (1 .. 128)), --- абонентный почтовый
ящик получателя
acc-addr [9] UTF8String (SIZE (1 .. 128)) --- адрес "до востребования"
получателя
}
PostItem ::= SEQUENCE {
receiver-info [0] UTF8String (SIZE (1..1024)) OPTIONAL, -- получатель ПО
receiver-address [1] PostAddress OPTIONAL, -- адрес получателя
sender-info [2] UTF8String (SIZE (1..1024)) OPTIONAL, -- отправитель ПО
sender-address [3] PostAddress OPTIONAL, -- адрес отправителя
post-info [4] PostInfo OPTIONAL, -- характеристики отправления
probability INTEGER (0 .. 100) OPTIONAL -- вероятность
распознавания данных
}
PostAddress ::= SEQUENCE {
country-code UTF8String (SIZE (1..3)), --
название страны получателя в соответствии с ISO-3166-1
index [0] UTF8String (SIZE (1..12)) OPTIONAL, -- индекс
отделения почтовой связи
unstruct-address [1] UTF8String (SIZE (1..1024)) OPTIONAL,
struct-address [2] PostAddressStructData OPTIONAL
-- адресные данные
}
-- характеристики отправления
PostInfo ::= SEQUENCE {
post-weight [0] UTF8String (SIZE (1 .. 128)) OPTIONAL, -- вес
почтового отправления
post-cost [1] UTF8String (SIZE (1 .. 10)) OPTIONAL, --
объявленная стоимость отправления
post-description [2] UTF8String (SIZE (1 .. 1024)) OPTIONAL --
заявленное описание содержимого отправления
}
PostAddressStructData ::= SEQUENCE {
country [0] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- страна
region [1] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- область
zone [2] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- район,
муниципальный округ
city [3] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- город,
поселок, деревня
street [4] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- улица
building [5] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- дом, строение
build-sect [6] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- корпус
apartment [7] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- квартира, офис
priv-box [8] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- абонентный
почтовый ящик получателя
acc-addr [9] UTF8String (SIZE (1 .. 128)) OPTIONAL --- адрес "до
востребования" получателя
}
END
SORM-MESSAGES DEFINITIONS IMPLICIT TAGS ::=
BEGIN
IMPORTS MessageID,
DateAndTime
FROM SORM-TYPES
ControlMessage
FROM CONTROL-MESSAGES
DataMessage
FROM DATA-MESSAGES
ManagementMessage
FROM MANAGEMENT-MESSAGES;
Message ::= SEQUENCE {
message-time DateAndTime, -- время и дата сообщения (формируется
отправителем)
message-id MessageID, -- циклический номер сообщения, формируемый
отправителем, действующий на протяжении сетевого соединения
data Data -- блок данных
}
Data ::= CHOICE {
control-message [0] ControlMessage, -- блок канала управления
data-message [1] DataMessage, -- блок канала данных
management-message [2] ManagementMessage -- блок канала
мониторинга
}
END
SORM-TYPES DEFINITIONS IMPLICIT TAGS ::=
BEGIN
EXPORTS MachineID,
CellID,
MailID,
ObjectUNI,
MessageID,
DateAndTime,
ModuleId,
LogicalOperation;
MachineID ::= UTF8String (SIZE (1..10)) -- идентификатор СО, подключенной к
ТС ОРМ
MailID ::= SEQUENCE {
machine-id MachineID, -- идентификатор СО, выполняющей обработку отправления
stamp-id [0] UTF8String (SIZE (1..128)) OPTIONAL, -- идентификатор
почтового отправления
track-num [1] UTF8String (SIZE (1..128)) OPTIONAL -- ШПИ почтового
отправления
}
CellID ::= UTF8String (SIZE (1..64)) -- идентификатор ячейки для сортировки
ObjectUNI ::= INTEGER (0 .. 4294967295) -- идентификатор объекта контроля
MessageID :: = INTEGER (0 .. 4294967295)
DateAndTime ::= UTCTime
--- уникальный идентификатор КТС/модуля СПО ТС ОРМ
ModuleId ::= OCTET STRING (SIZE (8))
LogicalOperation ::= ENUMERATED {
operation-open-bracket (0), -- открывающая скобка - "("
operation-close-bracket (1), -- закрывающая скобка - ")"
operation-or (2), -- логическое "или"
operation-and (3), -- логическое "и"
operation-not (4) -- логическое "не"
}
END
- Гражданский кодекс (ГК РФ)
- Жилищный кодекс (ЖК РФ)
- Налоговый кодекс (НК РФ)
- Трудовой кодекс (ТК РФ)
- Уголовный кодекс (УК РФ)
- Бюджетный кодекс (БК РФ)
- Арбитражный процессуальный кодекс
- Конституция РФ
- Земельный кодекс (ЗК РФ)
- Лесной кодекс (ЛК РФ)
- Семейный кодекс (СК РФ)
- Уголовно-исполнительный кодекс
- Уголовно-процессуальный кодекс
- Производственный календарь на 2025 год
- МРОТ 2025
- ФЗ «О банкротстве»
- О защите прав потребителей (ЗОЗПП)
- Об исполнительном производстве
- О персональных данных
- О налогах на имущество физических лиц
- О средствах массовой информации
- Производственный календарь на 2026 год
- Федеральный закон "О полиции" N 3-ФЗ
- Расходы организации ПБУ 10/99
- Минимальный размер оплаты труда (МРОТ)
- Календарь бухгалтера на 2025 год
- Частичная мобилизация: обзор новостей
- Постановление Правительства РФ N 1875