티스토리 뷰
ASN.1 문법 기초적인 부분을 정리하였다.
SEQUENCE
SEQUENCE , C,C++ 에서는 Struct 구조체와 동일한 개념이다.
SEQUENCE 내부에 선언된 Element(변수(?)) 들은 mask 형식으로 관리된다, 즉, 모든 Element가 출력될 수 있다.
BCCH-BCH-Message ::= SEQUENCE {
message BCCH-BCH-MessageType
}
BCCH-BCH-MessageType ::= CHOICE {
mib MIB,
messageClassExtension SEQUENCE {}
}
BCCH-BCH-Message 타입이라는 SEQUENCE 시컨스(구조체)를 만듭니다.
{ } 괄호안에는 시컨스안에 들어갈 정보 입니다.
ex) SEQUENCE {} 와 같은 구조는 정보가 없음을 의미합니다.
BCCH-BCH-Message시컨스 안에는 BCCH-BCH-MessageType 타입이라는 message 시컨스가 있습니다.
CHOICE
반면에, CHOICE 는 대상 중에 하나만 사용한다. C의 union과 같은 개념이다. CHOICE 값을 선언할 때 선언되어 있는 Element 중 하나를 사용한다.
criticalExtensions CHOICE {
rrcResumeComplete AAA,
criticalExtensionsFuture SEQUENCE {}
}
INTEGER
INTEGER은 C에서 int형과 같은 개념이다. 아래에서 SEQUENCE는 C의 struct이고 SEQUENCE OF는 C의 Array선언 [ ] 에 해당된다.
frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S
frequencyDensity의 값은 1~276사이 값으로 들어오며, 시컨스의 갯수는2개 고정됨을 의미한다.
ABC ::= INTEGER (0..100)
ABC값은 0 ~ 100 사이로 들어옴 보통, 0 ~ 100 사이임으로 양수만 사용함으로 C,C++ 입장에서는 unsigned short 같은 타임을 사용한다.
여기서 추가로 하고 싶은 말은, INTEGER (범위) 괄호안에 범위에 따라, unsigned int, unsigned short , short(범위가 -값을 포함할 경우) 할지가 결정된다.
AAB INTEGER ::= 32 -- AAB 값은 32
SIZE
구조체의 갯수의 의미로 판단된다. 3 은 3개로 고정, 2..3은 2 ~ 3개 값으로 들어올수 있음을 의미한다.
MCC ::= SEQUENCE (SIZE (3)) OF MCC-MNC-Digit
MNC ::= SEQUENCE (SIZE (2..3)) OF MCC-MNC-Digit
ENUMERATED
cellReservedForOperatorUse ENUMERATED {reserved, notReserved},
cellReservedForOperatorUse 요소의 값 0은 reserved, 1은 notReserved 이라는 문자열을 맵핑한다.
SetupRelease CHOICE와 유사한 개념으로, 선언은 한게만 되어있지만, release or setup 둘중 하나로 분리가 되며,
setup이면, 아래언급된 { } 안에 영역 요소로 접근하고, release면, 간이 없음을 의미한다.
semiPersistentOnPUSCH-TriggerStateList SetupRelease { CSI-SemiPersistentOnPUSCH-TriggerStateList } OPTIONAL, -- Need M
--
-- 은 주석을 의미를 지닌다.
BOOLEAN
BOOLEAN은 c++ 에서 bool과 같은 의미를 지닌다
skipUplinkTxDynamic BOOLEAN,
NULL
NULL 은 값이 NULL, 0 만 들어온다는 것이다.
SRS-PeriodicityAndOffset ::= CHOICE {
sl1 NULL,
BIT STRING
Bit string은 Bit정보가 담벼잇는 타입
TESTAA BIT STRING (SIZE (10))
TESTAA 가 10자리의 Bit 정보를 가지고 잇음을 의미
참고자료 : https://fly32.tistory.com/446
다음 정리는 TLV 관점에서 처리를 공부하고 정리해보도록 하겠습니다.
'통신' 카테고리의 다른 글
Evolved Universal Terrestrial Radio Access (E-UTRA); LTE Positioning Protocol 36355 (0) | 2021.10.29 |
---|---|
[통신] Big Endian 빅에디안, Little Endian 리틀에디안 (0) | 2019.11.22 |
[통신] 시간 단위 개념 (0) | 2019.10.18 |