Действующий
Коды об ошибке протокола NPL передаются пакетами NPL_TYPE_ERROR, которые при передаче не шифруются. Поле передачи данных содержит код ошибки и имеет следующий формат:
Поле | Д лина | Тип | Описание | Может ли данное поле (значение) изменяться |
4 | unsigned int32 | Содержит коды ошибки: NPL_ERR_OK NPL_ERR_UNDEFINED NPL_ERR_INVALID_ PEER _ADDRESS NPL_ERR_PEER_NOT_AVAILABLE NPL_ERR_PEER_PERM_DENIED | Да |
Каждый участник соединения (СТС) обладает набором функций (услуг), которые он может предоставить другим участникам соединения. Все функции логически разделены на группы услуг мониторинга. Набор услуг мониторинга, которые поддерживает определенный участник соединения, определяет интерфейс его взаимодействия с другими участниками соединения.
Для каждого типа услуг мониторинга определены свои типы пакетов и логика работы. Отдельные типы пакетов могут использоваться в нескольких типах услуг мониторинга (например: пакет NPH_RESULT - пакет подтверждения, отсылающийся на не требующий получения данных запрос). Участник соединения может не поддерживать отдельные пакеты в определенном типе услуг мониторинга.
Поле | Длина | Тип | Описание | Может ли данное поле (значение) изменяться | |
заголовок пакета NPH | 2 | unsigned int16 | Тип услуги | Нет. В поле всегда должно быть установлено значение 0100 - NPH_SRV_NAVDATA | |
2 | unsigned int16 | Тип пакета | Да | ||
2 | unsigned int16 | Флаги пакета (определяет необходимость подтверждения). Bit 0 NPH_FLAG_REQUEST - определяет необходимость подтверждения пакета. Принимает значения: 0 - пакет не требует подтверждения; 1 - пакет требует подтверждения. Возможен случай, когда бит установлен, но подтверждение не высылается. Подтверждение высылается только в том случае, когда направление подтверждения предусматривается протоколом обмена. | Нет. В поле всегда должно быть установлено значение 1 - пакет требует подтверждения | ||
4 | unsigned int32 | Идентификатор пакета, используется для подтверждения запроса. ID пакетов рекомендуется делать уникальным хотя бы в рамках одной сессии передачи данных. Например, выбрать некоторое значение ID при установке соединения и для каждого последующего пакета увеличивать его ID на единицу. При достижении 0xFFFFFFFF следующее значение ID будет равно 0x00000000 и т.д. | Да | ||
данные пакета NPH | var | var | Поле содержит данные, является необязательным. Наличие и структура поля должны однозначно определяться типом услуг ( | Да |
Пакет NPH_RESULT является общим для всех типов услуг, если запрос не предусматривает получения каких либо данных. В ответ на пакет запроса посылается пакет подтверждения NPH_RESULT.
поле | длина | тип | описание | может ли данное поле (значение) изменяться |
4 | unsigned int32 | 0 в случае успешного выполнения запроса или код ошибки | Да |