aboutsummaryrefslogtreecommitdiff
path: root/csta/source-files/Remote-Operations-Useful-Definitions.asn1
blob: fe1160a0f15ecfc4e04e829efa99749681ca1e42 (plain)
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
77
Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4) useful-definitions(7) version1(0)}
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
-- exports everything
IMPORTS OPERATION, ERROR, OPERATION-PACKAGE, Code FROM Remote-Operations-Information-Objects{joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
InvokeId, ROS{} FROM Remote-Operations-Generic-ROS-PDUs{joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)}; 
emptyBind OPERATION ::= {ERRORS {refuse} SYNCHRONOUS TRUE}
emptyUnbind OPERATION ::= { SYNCHRONOUS TRUE }
refuse ERROR ::= {CODE  local:-1}
no-op OPERATION ::=
{
	ALWAYS RESPONDS FALSE
	CODE  local:-1
}
Forward {OPERATION:OperationSet} OPERATION ::=
{
	OperationSet |
	OperationSet.&Linked.&Linked |
	OperationSet.&Linked.&Linked.&Linked.&Linked
}
Reverse {OPERATION:OperationSet} OPERATION ::=
	{Forward{ {OperationSet.&Linked} }}
ConsumerPerforms {OPERATION-PACKAGE:package} OPERATION ::=
{
	Forward{{package.&Consumer}} |
	Forward{{package.&Both}} |
	Reverse{{package.&Supplier}} |
	Reverse{{package.&Both}}
}
SupplierPerforms {OPERATION-PACKAGE:package} OPERATION ::=
{
	Forward{{package.&Supplier}} |
	Forward{{package.&Both}} |
	Reverse{{package.&Consumer}} |
	Reverse{{package.&Both}}
}
AllOperations {OPERATION-PACKAGE:package} OPERATION ::=
{
	ConsumerPerforms {package} |
	SupplierPerforms {package}
}
recode {OPERATION:operation, Code:code} OPERATION ::=  
{
	ARGUMENT		operation.&ArgumentType
		OPTIONAL		operation.&argumentTypeOptional
	RESULT			operation.&ResultType
		OPTIONAL		operation.&resultTypeOptional
	RETURN RESULT		operation.&returnResult
	ERRORS			{operation.&Errors}
	LINKED			{operation.&Linked}
	SYNCHRONOUS		operation.&synchronous
	ALWAYS RESPONDS		operation.&alwaysReturns
	INVOKE PRIORITY		{operation.&InvokePriority}
	RESULT-PRIORITY		{operation.&ResultPriority}
	CODE			code
}
switch {OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=  
{
	OPERATIONS		{package.&Both}
	CONSUMER INVOKES	{package.&Supplier}
	SUPPLIER INVOKES	{package.&Consumer}
	ID			id
}
combine {OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies, OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= 
{
	OPERATIONS		{ConsumerConsumes.&Both | ConsumerSupplies.&Both}
	CONSUMER INVOKES	{ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
	SUPPLIER INVOKES	{ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
	ID			base.&id
}
ROS-SingleAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
	ROS {{InvokeIdSet}, {AllOperations{package}}, {AllOperations{package}}}
ROS-ConsumerAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
	ROS {{InvokeIdSet}, {ConsumerPerforms{package}}, {SupplierPerforms{package}}}
ROS-SupplierAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= 
	ROS {{InvokeIdSet}, {SupplierPerforms{package}}, {ConsumerPerforms{package}}}
END -- end of useful definitions.