ГОСТ Р 56947—2016
Возвращаемый результат: Число элементов.
9.3.2 Модуль «IEEE1451DotO::Util»
IDL:
nodule U til
{
| .
В данном модуле организованы классы и интерфейсы утилит.
9.3.2.1 Интерфейс «1ЕЕЕ1451 DotO::Util::Codec»
ID L:
in te r fa c e Codec f ).
Данный интерфейс представлен уровнем ИИЭР 1451 .X как дополнительный для обеспечения
пользовательского кодирования и декодирования массивов аргументов в байтовые массивы и наобо
рот. Если интерфейс зарегистрирован, то он будет автоматически запускаться уровнем ИИЭР 1451.0.
Список интерфейсов в данной группе представлен в таблице 81.
Т а б л и ц а 8 1 — К о д е к и
IEEE1451dotO::Utl::CodeC
A r g s : : U ln t 1 6 e n c o d e C o m m a n d ( in A r g s : : U ln t 1 6 c h a n n e lld . in A r g s : : U ! n t 8 c m d C la s s I d , in A r g s : : U ln t 8 c m d F u n c t io n ld . in
A r g s : A r g u m e n t A r r a y in A r g s . o u l A r g s : : O c t e t A r r a y p a y lo a d ) ;
A r g s : : U ln t 1 6 d e c o d e C o m m a n d ( in A r g s : : O c t e lA r r a y p a y lo a d , o u t A r g s : : U ln t 1 6 c h a n n e lld , o u t A r g s : : U ln t 8 c m d C la s s I d .
o u t A r g s : : U ln t 8 c m d F u n c t io n ld . o u t A r g s : : A r g u m e n t A r r a y in A r g s ) :
A r g s : : U ln t 1 6 e n c o d e R e s p o n s e ( in A r g s : : _ B o o le a n s u c c e s s F la g . in A r g s : : A r g u m e n t A r r a y o u t A r g s . o u t A r g s : : O c t e t A r r a y
p a y lo a d ) ;
A r g s : : U ln t 1 6 d e c o d e R e s p o n s e { in A r g s : : O c t e t A r r a y p a y lo a d , o u t A r g s : : _ B o o le a n s u c c e s s F la g . o u t A r g s : : A r g u m e n t A r r a y
o u t A r g s ) :
A r g s : : U ln t 1 6 a r g u m e n t A r r a y 2 0 c t e t A r r a y ( in A r g s : : A r g u m e n t A r r a y in A r g s . o u t A r g s : : O c t e t A r r a y p a y lo a d ) :
A r g s : : U ln t 1 6 o c t e A r r a y 2 A r g u m e n t A r r a y ( in A r g s : : O c t e t A r r a y p a y lo a d , o u t A r g s : : A r g u m e n t A r r a y o u t A r g s ) ;
9.3.2.2 Метод «IEEE1451DotO::Util::Codec::encodeCommand»
ID L:
A rg s::U ln tl6 encodeCommand<
inA rgs: : U lntl6d e stld ,
inA rgs::U In tl6channelld,
inA rgs::U In t8cm dClassId,
inA rgs: : Ulnt3cmdFunctionld
inA r g s:: ArgumentArrayinArgs,
out A rgs::O ctetA rrayp ay lo ad ).
Данный метод обеспечивается уровнем ИИЭР 1451 .X и вызывается уровнем ИИЭР 1451.0 для ко
дирования команды в байтовый массив. Подробное описание соглашения о кодировании представлено в
разделе 6. Метод вызывается на инициирующем узле до запуска запросов «ModuleConnunication::P2
PComm::write()» или «ModuleConnunication::NetComm::writeMsg{)».
Планируется, что уровень «dot 0» считывает и использует командные ЭТДП для кодирования/
декодирования неизвестных команд.
Параметры
Параметр «channelld» — заданный идентификатор канала.
«cmdClassId» — заданный класс команды.
«cmdFunctionld» — заданный код функции команды.
Параметр «inArgs» содержит специальные входные аргументы команды.
[out] «payload» — закодированный байтовый массив.
Возвращаемый результат: код ошибки.
9.3.2.3 Метод «IEEE1451DotO::Util::Codec::decodeCommand»
ID L:
A rg s::U ln tl6 decodeCorranand<
inA rgs::O ctetA rraypayload,
out A rgs::U In tl6channelld,
out A rgs: : Uint8cm dClassId,
out A rgs::U ln t8cmdFunctionld,
out A rgs: : ArgumentArray in A rgs).
1 4 5