Правильная структура данных pyasn1 для образцов значений IEC 61850 Тип SavPDU?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Правильная структура данных pyasn1 для образцов значений IEC 61850 Тип SavPDU?

Сообщение Anonymous »

Я новичок в использовании pyasn1 и пытаюсь преобразовать тип SEQUENCE в модель класса Python, следуя опубликованной в Беркли документации для программиста PyASN1
Раздел IEC 61850-9-2 8.5.2 Таблица 14 Кодировка для SavPdu определяется как

Код: Выделить всё

    SavPdu ::= SEQUENCE {
noASDU   [0] IMPLICIT INTEGER (1..65535),
security [1] ANY OPTIONAL,
asdu     [2] IMPLICIT SEQUENCE OF ASDU
}

ASDU ::= SEQUENCE {
svID        [0] IMPLICIT VisibleString,
datset      [1] IMPLICIT VisibleString OPTIONAL,
smpCnt      [2] IMPLICIT OCTET STRING (SIZE(2)),
confRev     [3] IMPLICIT OCTET STRING (SIZE(4)),
refrTm      [4] IMPLICIT UtcTime OPTIONAL,
smpSynch    [5] IMPLICIT OCTET STRING (SIZE(1)),
smpRate     [6] IMPLICIT OCTET STRING (SIZE(2)) OPTIONAL,
sample      [7] IMPLICIT OCTET STRING (SIZE(n)),
smpMod      [8] IMPLICIT OCTET STRING (SIZE(2)) OPTIONAL
}
Это моя первая попытка создать класс Python описанной выше модели:

Код: Выделить всё

from pyasn1.type import constraint, namedtype, tag, univ

class SavPdu(univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('noASDU', univ.Integer().subtype(suptypeSpec = constraint.ValueRangeConstraint(1,65535)).tagSet.tagImplicitly(tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),
namedtype.NamedType('security', univ.Any),
namedtype.NamedType('asdu', univ.Sequence(ASDU).tagSet.tagImplicitly(tag.tagClassContext, tag.tagFormatSimple, 2))
)
где ASDU — это еще один класс Python, определенный в другом месте файла.
Правильно ли я определяю свой класс на основе модели и библиотеки?

Подробнее здесь: https://stackoverflow.com/questions/787 ... avpdu-type
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»