source: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl@ 270

Last change on this file since 270 was 270, checked in by coas-nagasima, 7 years ago

mruby版ECNLプロトタイピング・ツールを追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plain
File size: 7.0 KB
Line 
1/*
2 * TECS Generator
3 * Generator for TOPPERS Embedded Component System
4 *
5 * Copyright (C) 2008-2013 by TOPPERS Project
6 *--
7 * 上記著作権者
8は,以下の(1)(4)の条件を満たす場合に限り,本ソフトウェ
9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
10 * 変・再é…
11å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
14 * スコード中に含まれていること.
15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
16 * 用できる形で再é…
17å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
18å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
19 * 者
20マニュアルなど)に,上記の著作権表示,この利用条件および下記
21 * の無保証規定を掲載すること.
22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
23 * 用できない形で再é…
24å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
25 * と.
26 * (a) 再é…
27å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
28マニュアルなど)に,上記の著
29 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
30 * (b) 再é…
31å¸ƒã®å½¢æ…
32‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
33 * 報告すること.
34 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
35 * 害からも,上記著作権者
36およびTOPPERSプロジェクトをå…
37è²¬ã™ã‚‹ã“と.
38 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
39 * 由に基づく請求からも,上記著作権者
40およびTOPPERSプロジェクトを
41 * å…
42è²¬ã™ã‚‹ã“と.
43 *
44 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
45お
46 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
47 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
48 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
49 * の責任を負わない.
50 *
51 * $Id: TDR.cdl 270 2017-02-09 04:03:47Z coas-nagasima $
52 */
53
54import_C( "tecs_rpc.h" );
55
56// Straight Order TDR
57const uint32_t TDR_SOP_MAGIC1 = (0x672A); // Client to Server
58const uint32_t TDR_SOP_MAGIC2 = (0x561E); // Server to Client
59const uint32_t TDR_EOP_MAGIC1 = (0x5A3C); // 返信を待
60つ (同期呼出し)
61const uint32_t TDR_EOP_MAGIC2 = (0x6D5E); // 返信を待
62たない(非同期呼出しまたはリターン)
63
64// Straight Order TDR for SharedChannel
65const uint32_t TDR_SHSOP_MAGIC1 = (0x98D5); // Client to Server
66const uint32_t TDR_SHSOP_MAGIC2 = (0xA9E1); // Server to Client
67const uint32_t TDR_SHEOP_MAGIC1 = (0xB5C3); // 返信を待
68つ (同期呼出し)
69const uint32_t TDR_SHEOP_MAGIC2 = (0x92A1); // 返信を待
70たない(非同期呼出しまたはリターン)
71
72/*
73 * TDR: TECS Data Representation layer
74 */
75[deviate] /* get_intptr が逸脱になる */
76signature sTDR { /* TECS Data Representation */
77
78 /* 制御関数 */
79
80 /* チャンネルのリセット */
81 ER reset( void ); /* 通信チャンネルのリセット */
82 /* 途中でエラーが発生し、送信または受信を続行できなかったときはリセットする */
83 /* 一方がリセットをかけると、他方は RESET エラーを返す */
84 /* 確認できないときは、このチャネルは放棄するしかない */
85
86 /* マジックコードの送受信 */
87 ER sendSOP( [in]bool_t b_client ); /* StartOfPacket magic を送信 */
88 ER receiveSOP( [in]bool_t b_client ); /* StartOfPacket magic を受信 */
89 /* b_client: クライアント側なら true, サーバー側なら false */
90
91 /* マジックコードの送受信 */
92 // ER sendSHSOP( [in]bool_t b_client ); /* StartOfPacket magic を送信 */
93 // ER receiveSHSOP( [in]bool_t b_client ); /* StartOfPacket magic を受信 */
94 /* b_client: クライアント側なら true, サーバー側なら false */
95
96 ER sendEOP( [in]bool_t b_continue ); /* EndOfPacket magic を送信(パケットの掃きだしも行う) */
97 ER receiveEOP( [in]bool_t b_continue );/* EndOfPacket magic を受信 */
98 /* b_continue: 同期呼び出しのクライアント側なら true,
99 非同期呼び出しのクライアント側またはサーバー側なら false */
100
101 /* データ送受信関数 */
102
103 /* 整数型 (推奨) */
104 ER putInt8( [in]int8_t in );
105 ER putInt16( [in]int16_t in );
106 ER putInt32( [in]int32_t in );
107 ER putInt64( [in]int64_t in );
108 ER putInt128( [in]int128_t in );
109
110 ER getInt8( [out]int8_t *out );
111 ER getInt16( [out]int16_t *out );
112 ER getInt32( [out]int32_t *out );
113 ER getInt64( [out]int64_t *out );
114 ER getInt128( [out]int128_t *out );
115
116 /* 無符号整数型 (推奨) */
117 ER putUInt8( [in]uint8_t in );
118 ER putUInt16( [in]uint16_t in );
119 ER putUInt32( [in]uint32_t in );
120 ER putUInt64( [in]uint64_t in );
121 ER putUInt128( [in]uint128_t in );
122
123 ER getUInt8( [out]uint8_t *out );
124 ER getUInt16( [out]uint16_t *out );
125 ER getUInt32( [out]uint32_t *out );
126 ER getUInt64( [out]uint64_t *out );
127 ER getUInt128( [out]uint128_t *out );
128
129 /* 文字型(推奨、8bit) */
130 ER putChar( [in]char_t in );
131 ER getChar( [out]char_t *out );
132
133 /* Bool 型 */
134 ER putBool( [in]bool_t in );
135 ER getBool( [out]bool_t *out );
136
137 /* 浮動小数型 */
138 ER putFloat32( [in]float32_t in );
139 ER putDouble64( [in]double64_t in );
140 ER getFloat32( [out]float32_t *out );
141 ER getDouble64( [out]double64_t *out );
142
143
144 /* 非推奨の型(有符号) */
145 ER putSChar( [in]schar_t in );
146 ER putShort( [in]short_t in );
147 ER putInt( [in]int_t in );
148 ER putLong( [in]long_t in );
149
150 ER getSChar( [out]schar_t *out );
151 ER getShort( [out]short_t *out );
152 ER getInt( [out]int_t *out );
153 ER getLong( [out]long_t *out );
154
155
156 /* 非推奨の型(無符号) */
157 ER putUChar( [in]uchar_t in );
158 ER putUShort( [in]ushort_t in );
159 ER putUInt( [in]uint_t in );
160 ER putULong( [in]ulong_t in );
161
162 ER getUChar( [out]unsigned char *out );
163 ER getUShort( [out]ushort_t *out );
164 ER getUInt( [out]uint_t *out );
165 ER getULong( [out]ulong_t *out );
166
167 ER putIntptr( [in]const intptr_t ptr );
168 ER getIntptr( [out]intptr_t *ptr );
169};
170
171// Straight Order TECS Data Representation (Straight means no endian-conversion is done)
172celltype tTDR {
173 call sChannel cChannel;
174 [inline]
175 entry sTDR eTDR;
176
177 var {
178 TMO tmo = C_EXP( "TMO_FEVR" );
179 };
180 require tSysLog.eSysLog;
181};
182
183// Network Byte Order (Big-endian) TECS Data Representation (Data are always sent in big-endian)
184celltype tNBOTDR {
185 call sChannel cChannel;
186 [inline]
187 entry sTDR eTDR;
188
189 var {
190 TMO tmo = C_EXP( "TMO_FEVR" );
191 };
192 require tSysLog.eSysLog;
193};
Note: See TracBrowser for help on using the repository browser.