dataview-uniq.asn 1.67 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
TASTE-BasicTypes DEFINITIONS ::=
BEGIN

-- Set of TASTE predefined basic types

T-Int32 ::=  INTEGER (-2147483648 .. 2147483647)

T-UInt32 ::= INTEGER (0 .. 4294967295)

T-Int8 ::= INTEGER (-128 .. 127)

T-UInt8 ::= INTEGER (0 .. 255)

T-Boolean ::= BOOLEAN

END

TASTE-Dataview DEFINITIONS ::=
BEGIN
IMPORTS T-Int32, T-UInt32, T-Int8, T-UInt8, T-Boolean FROM TASTE-BasicTypes;

TASTE-Boolean ::= BOOLEAN
MyInt ::= INTEGER (0..255)
MySeqOf ::= SEQUENCE (SIZE (0..2)) OF BOOLEAN
MySeq ::= SEQUENCE { foo BOOLEAN, bar BOOLEAN OPTIONAL }
MyChoice ::= CHOICE { hop BOOLEAN }

Seq-With-Optional ::= SEQUENCE {
   a BOOLEAN,
   b BOOLEAN OPTIONAL,
   c  INTEGER (0..255) OPTIONAL,
   d MyInt OPTIONAL,
   e SEQUENCE (SIZE (2)) OF MyInt OPTIONAL,
   f MySeq,
   g SEQUENCE { huhu BOOLEAN OPTIONAL, b BOOLEAN },
   h MySeqOf,
   ii CHOICE { x BOOLEAN, y BOOLEAN } OPTIONAL,
   jj CHOICE { uiop BOOLEAN },
   k MyChoice
}
   

-- ASN.1 Type definitions must start with an uppercase
-- Field names in records (SEQUENCE) must start with a lowercase
-- Underscores are not allowed: use dash (hyphen) 

-- Simple types:

-- MyInteger   ::= INTEGER (0..255)
-- MyReal      ::= REAL (0.0 .. 1000.0)
-- MyBool      ::= BOOLEAN
-- MyEnum      ::= ENUMERATED { hello, world, how-are-you }

-- Complex types:

--  MySeq       ::= SEQUENCE {
--      input-data  MyInteger,
--      output-data MyInteger,
--      validity    ENUMERATED { valid, invalid }
--  }
--
--  MyChoice    ::= CHOICE {
--      a BOOLEAN,
--      b MySeq
--  }
--
--  MySeqOf     ::= SEQUENCE (SIZE (2)) OF MyEnum
--
--  MyOctStr    ::= OCTET STRING (SIZE (3))
--
--  -- You can also declare constants
--  myVar       MySeqOf     ::= { hello, world }

END