Селекторы OSI, каковы их значения? С++

Я работаю со стандартом IEC61850. И впервые я столкнулся с OSI Selectors: Transport selector, Session selector и Presentation selector. Меня не интересует их физический смысл. Задача состоит в том, чтобы преобразовать их значения из файла разбора (из std::string) в uint8_t. Я не понимаю, как представлены эти значения?

Значения из файла (схема xml):

      <P type="OSI-PSEL">00000001</P>
<P type="OSI-SSEL">0001</P>
<P type="OSI-TSEL">0001</P>

или это может быть

      <P type="OSI-TSEL">00000001</P>
<P type="OSI-PSEL">01</P>
<P type="OSI-SSEL">01</P>

в xsd я получил эту информацию о них:

      <xs:complexType name="tP_OSI-TSEL">
     <xs:restriction base="tP">
     <xs:maxLength value="8"/>
     <xs:pattern value="[0-9,A-F]+"/>
     </xs:restriction>
</xs:complexType>
<xs:complexType name="tP_OSI-SSEL">
     <xs:restriction base="tP">
     <xs:maxLength value="16"/>
     <xs:pattern value="[0-9,A-F]+"/>
     </xs:restriction>
</xs:complexType>
<xs:complexType name="tP_OSI-PSEL">
     <xs:restriction base="tP">
     <xs:maxLength value="16"/>
     <xs:pattern value="[0-9,A-F]+"/>
     </xs:restriction>
</xs:complexType>

Представлены ли 01 или 00001 или 00000001 и т. д. в двоичной системе счисления? Почему они имеют разную длину? Я имею в виду, если 00000001 - это октет, что тогда 00001 и 01?

0 ответов

Другие вопросы по тегам