source: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h@ 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/x-chdr
File size: 29.7 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: tTDR_inline.h 270 2017-02-09 04:03:47Z coas-nagasima $
52 */
53
54/* #[<PREAMBLE>]#
55 * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
56 * tecsmerge によるマージに使用されます
57 *
58 * 属性アクセスマクロ #_CAAM_#
59 * tmo TMO VAR_tmo
60 *
61 * #[</PREAMBLE>]# */
62
63/*
64 * marhaler, unmarshaler が使用する STRLEN 関数を定義する
65 * marshaler, unmarshaler は必
66ず TDR は に結合されるため
67 */
68#include "rpc_string.h"
69
70/* 受け口関数 #_TEPF_# */
71/* #[<ENTRY_PORT>]# eTDR
72 * entry port: eTDR
73 * signature: sTDR
74 * context: task
75 * #[</ENTRY_PORT>]# */
76
77/* #[<ENTRY_FUNC>]# eTDR_reset
78 * name: eTDR_reset
79 * global_name: tTDR_eTDR_reset
80 * oneway: false
81 * #[</ENTRY_FUNC>]# */
82Inline ER
83eTDR_reset(CELLIDX idx)
84{
85 ER ercd = E_OK;
86 CELLCB *p_cellcb;
87 if (VALID_IDX(idx)) {
88 p_cellcb = GET_CELLCB(idx);
89 }
90 else {
91 return(E_ID);
92 }
93
94 syslog( LOG_INFO, "TDR: resetting channel" );
95 ercd = cChannel_reset();
96 return(ercd);
97}
98
99/* #[<ENTRY_FUNC>]# eTDR_sendSOP
100 * name: eTDR_sendSOP
101 * global_name: tTDR_eTDR_sendSOP
102 * oneway: false
103 * #[</ENTRY_FUNC>]# */
104Inline ER
105eTDR_sendSOP(CELLIDX idx, bool_t b_client )
106{
107 ER ercd = E_OK;
108 CELLCB *p_cellcb;
109 const uint16_t *p_sopMagic;
110 const uint16_t SOP_MAGIC1 = TDR_SOP_MAGIC1;
111 const uint16_t SOP_MAGIC2 = TDR_SOP_MAGIC2;
112 uint8_t val;
113
114 if (VALID_IDX(idx)) {
115 p_cellcb = GET_CELLCB(idx);
116 }
117 else {
118 return(E_ID);
119 }
120
121 /* ここに処理本体を記述します #_TEFB_# */
122#ifdef RPC_DEBUG
123 syslog(LOG_INFO, "eTDR_sendSOP(b_client=%d)", b_client);
124#endif
125 if( b_client )
126 p_sopMagic = &SOP_MAGIC1;
127 else
128 p_sopMagic = &SOP_MAGIC2;
129
130 /*
131 * SOP パケットの送信
132 * パケットシーケンスが多少崩れても回復できるように、バイト単位で送る
133 * 下位アドレス、上位アドレスの順に送る
134 */
135
136 val = (uint8_t)(*((uint8_t *)p_sopMagic));
137 ercd = eTDR_putUInt8( idx, val );
138 // syslog( LOG_INFO, "sendSOP:1 %02X", val );
139 if( ercd != E_OK )
140 return ercd;
141 val = (uint8_t)*(((uint8_t *)p_sopMagic)+1);
142 ercd = eTDR_putUInt8( idx, val );
143 // syslog( LOG_INFO, "sendSOP:2 %02X", val );
144
145 return ercd;
146}
147
148/* #[<ENTRY_FUNC>]# eTDR_receiveSOP
149 * name: eTDR_receiveSOP
150 * global_name: tTDR_eTDR_receiveSOP
151 * oneway: false
152 * #[</ENTRY_FUNC>]# */
153Inline ER
154eTDR_receiveSOP(CELLIDX idx, bool_t b_client)
155{
156 ER ercd = E_OK;
157 CELLCB *p_cellcb;
158 const uint16_t SOP_MAGIC1 = TDR_SOP_MAGIC1;
159 const uint16_t SOP_MAGIC2 = TDR_SOP_MAGIC2;
160 const uint16_t *p_sopMagic;
161 uint16_t magic;
162
163 if (VALID_IDX(idx)) {
164 p_cellcb = GET_CELLCB(idx);
165 }
166 else {
167 return(E_ID);
168 }
169
170 /* ここに処理本体を記述します #_TEFB_# */
171#ifdef RPC_DEBUG
172 syslog(LOG_INFO, "eTDR_receiveSOP(b_client=%d)", b_client);
173#endif
174
175 if( b_client )
176 p_sopMagic = &SOP_MAGIC2;
177 else
178 p_sopMagic = &SOP_MAGIC1;
179
180 if( (ercd=eTDR_getUInt8( idx, (uint8_t *)&magic )) != E_OK )
181 ;
182 else if( (uint8_t)magic != (uint8_t)(*((uint8_t *)p_sopMagic)) ){
183 // syslog( LOG_INFO, "receiveSOP:1 %02X expecting=%02X", (uint8_t)magic, (int8_t)(*((int8_t *)p_sopMagic)) );
184 ercd = E_MAGIC;
185 }
186 else if((ercd=eTDR_getUInt8( idx, ((uint8_t *)&magic)+1 )) != E_OK )
187 ;
188 else if( magic != *p_sopMagic){
189 // syslog( LOG_INFO, "receiveSOP:2 %04X expecting=%04X", magic, *p_sopMagic );
190 ercd = E_MAGIC;
191 }
192
193 if( ercd != E_OK )
194 syslog( LOG_INFO, "receiveSOP: ERCD=%d", ercd );
195
196 return ercd;
197}
198
199/* #[<ENTRY_FUNC>]# eTDR_sendEOP
200 * name: eTDR_sendEOP
201 * global_name: tTDR_eTDR_sendEOP
202 * oneway: false
203 * #[</ENTRY_FUNC>]# */
204Inline ER
205eTDR_sendEOP(CELLIDX idx, bool_t b_continue )
206{
207 ER ercd = E_OK;
208 CELLCB *p_cellcb;
209 uint16_t magic;
210 if (VALID_IDX(idx)) {
211 p_cellcb = GET_CELLCB(idx);
212 }
213 else {
214 return(E_ID);
215 }
216
217 /* ここに処理本体を記述します #_TEFB_# */
218#ifdef RPC_DEBUG
219 syslog(LOG_INFO, "eTDR_sendEOP(b_continue=%d)", b_continue);
220#endif
221
222 if( b_continue )
223 magic = TDR_EOP_MAGIC1;
224 else
225 magic = TDR_EOP_MAGIC2;
226
227 /* EOP magic の送信 */
228 if( (ercd = eTDR_putInt16( idx, (int16_t)magic )) != E_OK )
229 return ercd;
230
231 return cChannel_flush(VAR_tmo);
232}
233
234/* #[<ENTRY_FUNC>]# eTDR_receiveEOP
235 * name: eTDR_receiveEOP
236 * global_name: tTDR_eTDR_receiveEOP
237 * oneway: false
238 * #[</ENTRY_FUNC>]# */
239Inline ER
240eTDR_receiveEOP(CELLIDX idx, bool_t b_continue)
241{
242 ER ercd = E_OK, er2;
243 CELLCB *p_cellcb;
244 uint16_t magic;
245
246 if (VALID_IDX(idx)) {
247 p_cellcb = GET_CELLCB(idx);
248 }
249 else {
250 return(E_ID);
251 }
252
253 /* ここに処理本体を記述します #_TEFB_# */
254#ifdef RPC_DEBUG
255 syslog(LOG_INFO, "eTDR_receiveEOP(b_continue=%d)",b_continue);
256#endif
257/* mikan cChannel EOF get_* */
258/* mikan magic EOF */
259
260 if( (ercd=eTDR_getInt16( idx, (int16_t *)&magic )) == E_OK ){
261 if( (b_continue && magic == TDR_EOP_MAGIC1) || (!b_continue && magic == TDR_EOP_MAGIC2) ){
262 } else {
263 ercd = E_MAGIC;
264 }
265 }
266 er2 = cChannel_end_receive();
267 return ercd != E_OK ? ercd : er2;
268}
269
270/* #[<ENTRY_FUNC>]# eTDR_putInt8
271 * name: eTDR_putInt8
272 * global_name: tTDR_eTDR_putInt8
273 * oneway: false
274 * #[</ENTRY_FUNC>]# */
275Inline ER
276eTDR_putInt8(CELLIDX idx, int8_t in)
277{
278 CELLCB *p_cellcb;
279 if (VALID_IDX(idx)) {
280 p_cellcb = GET_CELLCB(idx);
281 }
282 else {
283 return(E_ID);
284 }
285
286 /* ここに処理本体を記述します #_TEFB_# */
287 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
288}
289
290/* #[<ENTRY_FUNC>]# eTDR_putInt16
291 * name: eTDR_putInt16
292 * global_name: tTDR_eTDR_putInt16
293 * oneway: false
294 * #[</ENTRY_FUNC>]# */
295Inline ER
296eTDR_putInt16(CELLIDX idx, int16_t in)
297{
298 CELLCB *p_cellcb;
299 if (VALID_IDX(idx)) {
300 p_cellcb = GET_CELLCB(idx);
301 }
302 else {
303 return(E_ID);
304 }
305
306 /* ここに処理本体を記述します #_TEFB_# */
307 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
308}
309
310/* #[<ENTRY_FUNC>]# eTDR_putInt32
311 * name: eTDR_putInt32
312 * global_name: tTDR_eTDR_putInt32
313 * oneway: false
314 * #[</ENTRY_FUNC>]# */
315Inline ER
316eTDR_putInt32(CELLIDX idx, int32_t in)
317{
318 CELLCB *p_cellcb;
319 if (VALID_IDX(idx)) {
320 p_cellcb = GET_CELLCB(idx);
321 }
322 else {
323 return(E_ID);
324 }
325
326 /* ここに処理本体を記述します #_TEFB_# */
327 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
328}
329
330/* #[<ENTRY_FUNC>]# eTDR_putInt64
331 * name: eTDR_putInt64
332 * global_name: tTDR_eTDR_putInt64
333 * oneway: false
334 * #[</ENTRY_FUNC>]# */
335Inline ER
336eTDR_putInt64(CELLIDX idx, int64_t in)
337{
338 CELLCB *p_cellcb;
339 if (VALID_IDX(idx)) {
340 p_cellcb = GET_CELLCB(idx);
341 }
342 else {
343 return(E_ID);
344 }
345
346 /* ここに処理本体を記述します #_TEFB_# */
347 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
348}
349
350/* #[<ENTRY_FUNC>]# eTDR_putInt128
351 * name: eTDR_putInt128
352 * global_name: tTDR_eTDR_putInt128
353 * oneway: false
354 * #[</ENTRY_FUNC>]# */
355Inline ER
356eTDR_putInt128(CELLIDX idx, int128_t in)
357{
358 CELLCB *p_cellcb;
359 if (VALID_IDX(idx)) {
360 p_cellcb = GET_CELLCB(idx);
361 }
362 else {
363 return(E_ID);
364 }
365
366 /* ここに処理本体を記述します #_TEFB_# */
367 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
368}
369
370/* #[<ENTRY_FUNC>]# eTDR_getInt8
371 * name: eTDR_getInt8
372 * global_name: tTDR_eTDR_getInt8
373 * oneway: false
374 * #[</ENTRY_FUNC>]# */
375Inline ER
376eTDR_getInt8(CELLIDX idx, int8_t* out)
377{
378 ER_UINT er_sz;
379 CELLCB *p_cellcb;
380 if (VALID_IDX(idx)) {
381 p_cellcb = GET_CELLCB(idx);
382 }
383 else {
384 return(E_ID);
385 }
386
387 /* ここに処理本体を記述します #_TEFB_# */
388 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
389 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
390}
391
392/* #[<ENTRY_FUNC>]# eTDR_getInt16
393 * name: eTDR_getInt16
394 * global_name: tTDR_eTDR_getInt16
395 * oneway: false
396 * #[</ENTRY_FUNC>]# */
397Inline ER
398eTDR_getInt16(CELLIDX idx, int16_t* out)
399{
400 ER_UINT er_sz;
401 CELLCB *p_cellcb;
402 if (VALID_IDX(idx)) {
403 p_cellcb = GET_CELLCB(idx);
404 }
405 else {
406 return(E_ID);
407 }
408
409 /* ここに処理本体を記述します #_TEFB_# */
410 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
411 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
412}
413
414/* #[<ENTRY_FUNC>]# eTDR_getInt32
415 * name: eTDR_getInt32
416 * global_name: tTDR_eTDR_getInt32
417 * oneway: false
418 * #[</ENTRY_FUNC>]# */
419Inline ER
420eTDR_getInt32(CELLIDX idx, int32_t* out)
421{
422 ER_UINT er_sz;
423 CELLCB *p_cellcb;
424 if (VALID_IDX(idx)) {
425 p_cellcb = GET_CELLCB(idx);
426 }
427 else {
428 return(E_ID);
429 }
430
431 /* ここに処理本体を記述します #_TEFB_# */
432 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
433 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
434}
435
436/* #[<ENTRY_FUNC>]# eTDR_getInt64
437 * name: eTDR_getInt64
438 * global_name: tTDR_eTDR_getInt64
439 * oneway: false
440 * #[</ENTRY_FUNC>]# */
441Inline ER
442eTDR_getInt64(CELLIDX idx, int64_t* out)
443{
444 ER_UINT er_sz;
445 CELLCB *p_cellcb;
446 if (VALID_IDX(idx)) {
447 p_cellcb = GET_CELLCB(idx);
448 }
449 else {
450 return(E_ID);
451 }
452
453 /* ここに処理本体を記述します #_TEFB_# */
454 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
455 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
456}
457
458/* #[<ENTRY_FUNC>]# eTDR_getInt128
459 * name: eTDR_getInt128
460 * global_name: tTDR_eTDR_getInt128
461 * oneway: false
462 * #[</ENTRY_FUNC>]# */
463Inline ER
464eTDR_getInt128(CELLIDX idx, int128_t* out)
465{
466 ER_UINT er_sz;
467 CELLCB *p_cellcb;
468 if (VALID_IDX(idx)) {
469 p_cellcb = GET_CELLCB(idx);
470 }
471 else {
472 return(E_ID);
473 }
474
475 /* ここに処理本体を記述します #_TEFB_# */
476 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
477 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
478}
479
480/* #[<ENTRY_FUNC>]# eTDR_putUInt8
481 * name: eTDR_putUInt8
482 * global_name: tTDR_eTDR_putUInt8
483 * oneway: false
484 * #[</ENTRY_FUNC>]# */
485Inline ER
486eTDR_putUInt8(CELLIDX idx, uint8_t in)
487{
488 CELLCB *p_cellcb;
489 if (VALID_IDX(idx)) {
490 p_cellcb = GET_CELLCB(idx);
491 }
492 else {
493 return(E_ID);
494 } /* end if VALID_IDX(idx) */
495
496 /* ここに処理本体を記述します #_TEFB_# */
497 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
498}
499
500/* #[<ENTRY_FUNC>]# eTDR_putUInt16
501 * name: eTDR_putUInt16
502 * global_name: tTDR_eTDR_putUInt16
503 * oneway: false
504 * #[</ENTRY_FUNC>]# */
505Inline ER
506eTDR_putUInt16(CELLIDX idx, uint16_t in)
507{
508 CELLCB *p_cellcb;
509 if (VALID_IDX(idx)) {
510 p_cellcb = GET_CELLCB(idx);
511 }
512 else {
513 return(E_ID);
514 } /* end if VALID_IDX(idx) */
515
516 /* ここに処理本体を記述します #_TEFB_# */
517 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
518}
519
520/* #[<ENTRY_FUNC>]# eTDR_putUInt32
521 * name: eTDR_putUInt32
522 * global_name: tTDR_eTDR_putUInt32
523 * oneway: false
524 * #[</ENTRY_FUNC>]# */
525Inline ER
526eTDR_putUInt32(CELLIDX idx, uint32_t in)
527{
528 CELLCB *p_cellcb;
529 if (VALID_IDX(idx)) {
530 p_cellcb = GET_CELLCB(idx);
531 }
532 else {
533 return(E_ID);
534 } /* end if VALID_IDX(idx) */
535
536 /* ここに処理本体を記述します #_TEFB_# */
537 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
538}
539
540/* #[<ENTRY_FUNC>]# eTDR_putUInt64
541 * name: eTDR_putUInt64
542 * global_name: tTDR_eTDR_putUInt64
543 * oneway: false
544 * #[</ENTRY_FUNC>]# */
545Inline ER
546eTDR_putUInt64(CELLIDX idx, uint64_t in)
547{
548 CELLCB *p_cellcb;
549 if (VALID_IDX(idx)) {
550 p_cellcb = GET_CELLCB(idx);
551 }
552 else {
553 return(E_ID);
554 } /* end if VALID_IDX(idx) */
555
556 /* ここに処理本体を記述します #_TEFB_# */
557 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
558}
559
560/* #[<ENTRY_FUNC>]# eTDR_putUInt128
561 * name: eTDR_putUInt128
562 * global_name: tTDR_eTDR_putUInt128
563 * oneway: false
564 * #[</ENTRY_FUNC>]# */
565Inline ER
566eTDR_putUInt128(CELLIDX idx, uint128_t in)
567{
568 CELLCB *p_cellcb;
569 if (VALID_IDX(idx)) {
570 p_cellcb = GET_CELLCB(idx);
571 }
572 else {
573 return(E_ID);
574 } /* end if VALID_IDX(idx) */
575
576 /* ここに処理本体を記述します #_TEFB_# */
577 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
578}
579
580/* #[<ENTRY_FUNC>]# eTDR_getUInt8
581 * name: eTDR_getUInt8
582 * global_name: tTDR_eTDR_getUInt8
583 * oneway: false
584 * #[</ENTRY_FUNC>]# */
585Inline ER
586eTDR_getUInt8(CELLIDX idx, uint8_t* out)
587{
588 ER_UINT er_sz;
589 CELLCB *p_cellcb;
590 if (VALID_IDX(idx)) {
591 p_cellcb = GET_CELLCB(idx);
592 }
593 else {
594 return(E_ID);
595 } /* end if VALID_IDX(idx) */
596
597 /* ここに処理本体を記述します #_TEFB_# */
598 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
599 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
600}
601
602/* #[<ENTRY_FUNC>]# eTDR_getUInt16
603 * name: eTDR_getUInt16
604 * global_name: tTDR_eTDR_getUInt16
605 * oneway: false
606 * #[</ENTRY_FUNC>]# */
607Inline ER
608eTDR_getUInt16(CELLIDX idx, uint16_t* out)
609{
610 ER_UINT er_sz;
611 CELLCB *p_cellcb;
612 if (VALID_IDX(idx)) {
613 p_cellcb = GET_CELLCB(idx);
614 }
615 else {
616 return(E_ID);
617 } /* end if VALID_IDX(idx) */
618
619 /* ここに処理本体を記述します #_TEFB_# */
620 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
621 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
622}
623
624/* #[<ENTRY_FUNC>]# eTDR_getUInt32
625 * name: eTDR_getUInt32
626 * global_name: tTDR_eTDR_getUInt32
627 * oneway: false
628 * #[</ENTRY_FUNC>]# */
629Inline ER
630eTDR_getUInt32(CELLIDX idx, uint32_t* out)
631{
632 ER_UINT er_sz;
633 CELLCB *p_cellcb;
634 if (VALID_IDX(idx)) {
635 p_cellcb = GET_CELLCB(idx);
636 }
637 else {
638 return(E_ID);
639 } /* end if VALID_IDX(idx) */
640
641 /* ここに処理本体を記述します #_TEFB_# */
642 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
643 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
644}
645
646/* #[<ENTRY_FUNC>]# eTDR_getUInt64
647 * name: eTDR_getUInt64
648 * global_name: tTDR_eTDR_getUInt64
649 * oneway: false
650 * #[</ENTRY_FUNC>]# */
651Inline ER
652eTDR_getUInt64(CELLIDX idx, uint64_t* out)
653{
654 ER_UINT er_sz;
655 CELLCB *p_cellcb;
656 if (VALID_IDX(idx)) {
657 p_cellcb = GET_CELLCB(idx);
658 }
659 else {
660 return(E_ID);
661 } /* end if VALID_IDX(idx) */
662
663 /* ここに処理本体を記述します #_TEFB_# */
664 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
665 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
666}
667
668/* #[<ENTRY_FUNC>]# eTDR_getUInt128
669 * name: eTDR_getUInt128
670 * global_name: tTDR_eTDR_getUInt128
671 * oneway: false
672 * #[</ENTRY_FUNC>]# */
673Inline ER
674eTDR_getUInt128(CELLIDX idx, uint128_t* out)
675{
676 ER_UINT er_sz;
677 CELLCB *p_cellcb;
678 if (VALID_IDX(idx)) {
679 p_cellcb = GET_CELLCB(idx);
680 }
681 else {
682 return(E_ID);
683 } /* end if VALID_IDX(idx) */
684
685 /* ここに処理本体を記述します #_TEFB_# */
686 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
687 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
688}
689
690/* #[<ENTRY_FUNC>]# eTDR_putBool
691 * name: eTDR_putBool
692 * global_name: tNBOTDR_eTDR_putBool
693 * oneway: false
694 * #[</ENTRY_FUNC>]# */
695Inline ER
696eTDR_putBool(CELLIDX idx, bool_t in)
697{
698 ER ercd = E_OK;
699 CELLCB *p_cellcb;
700 if (VALID_IDX(idx)) {
701 p_cellcb = GET_CELLCB(idx);
702 }
703 else {
704 return(E_ID);
705 } /* end if VALID_IDX(idx) */
706
707 /* ここに処理本体を記述します #_TEFB_# */
708 eTDR_putUInt8(idx, (uint8_t)(in != 0) );
709
710 return(ercd);
711}
712
713/* #[<ENTRY_FUNC>]# eTDR_getBool
714 * name: eTDR_getBool
715 * global_name: tNBOTDR_eTDR_getBool
716 * oneway: false
717 * #[</ENTRY_FUNC>]# */
718Inline ER
719eTDR_getBool(CELLIDX idx, bool_t* out)
720{
721 ER ercd = E_OK;
722 CELLCB *p_cellcb;
723 uint8_t val;
724 if (VALID_IDX(idx)) {
725 p_cellcb = GET_CELLCB(idx);
726 }
727 else {
728 return(E_ID);
729 } /* end if VALID_IDX(idx) */
730
731 /* ここに処理本体を記述します #_TEFB_# */
732 ercd = eTDR_getUInt8(idx, &val );
733 if( ercd != E_OK )
734 return ercd;
735 *out = (val != 0);
736
737 return(ercd);
738}
739
740/* #[<ENTRY_FUNC>]# eTDR_putFloat32
741 * name: eTDR_putFloat32
742 * global_name: tTDR_eTDR_putFloat32
743 * oneway: false
744 * #[</ENTRY_FUNC>]# */
745Inline ER
746eTDR_putFloat32(CELLIDX idx, float32_t in)
747{
748 CELLCB *p_cellcb;
749 if (VALID_IDX(idx)) {
750 p_cellcb = GET_CELLCB(idx);
751 }
752 else {
753 return(E_ID);
754 }
755
756 /* ここに処理本体を記述します #_TEFB_# */
757 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
758}
759
760/* #[<ENTRY_FUNC>]# eTDR_putDouble64
761 * name: eTDR_putDouble64
762 * global_name: tTDR_eTDR_putDouble64
763 * oneway: false
764 * #[</ENTRY_FUNC>]# */
765Inline ER
766eTDR_putDouble64(CELLIDX idx, double64_t in)
767{
768 CELLCB *p_cellcb;
769 if (VALID_IDX(idx)) {
770 p_cellcb = GET_CELLCB(idx);
771 }
772 else {
773 return(E_ID);
774 }
775
776 /* ここに処理本体を記述します #_TEFB_# */
777 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
778}
779
780/* #[<ENTRY_FUNC>]# eTDR_getFloat32
781 * name: eTDR_getFloat32
782 * global_name: tTDR_eTDR_getFloat32
783 * oneway: false
784 * #[</ENTRY_FUNC>]# */
785Inline ER
786eTDR_getFloat32(CELLIDX idx, float32_t* out)
787{
788 ER_UINT er_sz = E_OK;
789 CELLCB *p_cellcb;
790 if (VALID_IDX(idx)) {
791 p_cellcb = GET_CELLCB(idx);
792 }
793 else {
794 return(E_ID);
795 }
796
797 /* ここに処理本体を記述します #_TEFB_# */
798 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
799 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
800}
801
802/* #[<ENTRY_FUNC>]# eTDR_getDouble64
803 * name: eTDR_getDouble64
804 * global_name: tTDR_eTDR_getDouble64
805 * oneway: false
806 * #[</ENTRY_FUNC>]# */
807Inline ER
808eTDR_getDouble64(CELLIDX idx, double64_t* out)
809{
810 ER_UINT er_sz = E_OK;
811 CELLCB *p_cellcb;
812 if (VALID_IDX(idx)) {
813 p_cellcb = GET_CELLCB(idx);
814 }
815 else {
816 return(E_ID);
817 }
818
819 /* ここに処理本体を記述します #_TEFB_# */
820 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
821 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
822}
823
824/* #[<ENTRY_FUNC>]# eTDR_putChar
825 * name: eTDR_putChar
826 * global_name: tTDR_eTDR_putChar
827 * oneway: false
828 * #[</ENTRY_FUNC>]# */
829Inline ER
830eTDR_putChar(CELLIDX idx, char_t in)
831{
832 CELLCB *p_cellcb;
833 if (VALID_IDX(idx)) {
834 p_cellcb = GET_CELLCB(idx);
835 }
836 else {
837 return(E_ID);
838 }
839
840 /* ここに処理本体を記述します #_TEFB_# */
841 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
842}
843
844/* #[<ENTRY_FUNC>]# eTDR_getChar
845 * name: eTDR_getChar
846 * global_name: tTDR_eTDR_getChar
847 * oneway: false
848 * #[</ENTRY_FUNC>]# */
849Inline ER
850eTDR_getChar(CELLIDX idx, char_t* out)
851{
852 ER_UINT er_sz;
853 CELLCB *p_cellcb;
854 if (VALID_IDX(idx)) {
855 p_cellcb = GET_CELLCB(idx);
856 }
857 else {
858 return(E_ID);
859 }
860
861 /* ここに処理本体を記述します #_TEFB_# */
862 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
863 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
864}
865
866/* #[<ENTRY_FUNC>]# eTDR_putSChar
867 * name: eTDR_putSChar
868 * global_name: tTDR_eTDR_putSChar
869 * oneway: false
870 * #[</ENTRY_FUNC>]# */
871Inline ER
872eTDR_putSChar(CELLIDX idx, signed char in)
873{
874 CELLCB *p_cellcb;
875 if (VALID_IDX(idx)) {
876 p_cellcb = GET_CELLCB(idx);
877 }
878 else {
879 return(E_ID);
880 } /* end if VALID_IDX(idx) */
881
882 /* ここに処理本体を記述します #_TEFB_# */
883 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
884}
885
886/* #[<ENTRY_FUNC>]# eTDR_putShort
887 * name: eTDR_putShort
888 * global_name: tTDR_eTDR_putShort
889 * oneway: false
890 * #[</ENTRY_FUNC>]# */
891Inline ER
892eTDR_putShort(CELLIDX idx, short_t in)
893{
894 CELLCB *p_cellcb;
895 if (VALID_IDX(idx)) {
896 p_cellcb = GET_CELLCB(idx);
897 }
898 else {
899 return(E_ID);
900 }
901
902 /* ここに処理本体を記述します #_TEFB_# */
903 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
904}
905
906/* #[<ENTRY_FUNC>]# eTDR_putInt
907 * name: eTDR_putInt
908 * global_name: tTDR_eTDR_putInt
909 * oneway: false
910 * #[</ENTRY_FUNC>]# */
911Inline ER
912eTDR_putInt(CELLIDX idx, int_t in)
913{
914 CELLCB *p_cellcb;
915 if (VALID_IDX(idx)) {
916 p_cellcb = GET_CELLCB(idx);
917 }
918 else {
919 return(E_ID);
920 }
921
922 /* ここに処理本体を記述します #_TEFB_# */
923 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
924}
925
926/* #[<ENTRY_FUNC>]# eTDR_putLong
927 * name: eTDR_putLong
928 * global_name: tTDR_eTDR_putLong
929 * oneway: false
930 * #[</ENTRY_FUNC>]# */
931Inline ER
932eTDR_putLong(CELLIDX idx, long_t in)
933{
934 CELLCB *p_cellcb;
935 if (VALID_IDX(idx)) {
936 p_cellcb = GET_CELLCB(idx);
937 }
938 else {
939 return(E_ID);
940 }
941
942 /* ここに処理本体を記述します #_TEFB_# */
943 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
944}
945
946/* #[<ENTRY_FUNC>]# eTDR_getSChar
947 * name: eTDR_getSChar
948 * global_name: tTDR_eTDR_getSChar
949 * oneway: false
950 * #[</ENTRY_FUNC>]# */
951Inline ER
952eTDR_getSChar(CELLIDX idx, signed char* out)
953{
954 ER_UINT er_sz;
955 CELLCB *p_cellcb;
956 if (VALID_IDX(idx)) {
957 p_cellcb = GET_CELLCB(idx);
958 }
959 else {
960 return(E_ID);
961 } /* end if VALID_IDX(idx) */
962
963 /* ここに処理本体を記述します #_TEFB_# */
964 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
965 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
966}
967
968/* #[<ENTRY_FUNC>]# eTDR_getShort
969 * name: eTDR_getShort
970 * global_name: tTDR_eTDR_getShort
971 * oneway: false
972 * #[</ENTRY_FUNC>]# */
973Inline ER
974eTDR_getShort(CELLIDX idx, short* out)
975{
976 ER_UINT er_sz;
977 CELLCB *p_cellcb;
978 if (VALID_IDX(idx)) {
979 p_cellcb = GET_CELLCB(idx);
980 }
981 else {
982 return(E_ID);
983 }
984
985 /* ここに処理本体を記述します #_TEFB_# */
986 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
987 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
988}
989
990/* #[<ENTRY_FUNC>]# eTDR_getInt
991 * name: eTDR_getInt
992 * global_name: tTDR_eTDR_getInt
993 * oneway: false
994 * #[</ENTRY_FUNC>]# */
995Inline ER
996eTDR_getInt(CELLIDX idx, int_t* out)
997{
998 ER_UINT er_sz;
999 CELLCB *p_cellcb;
1000 if (VALID_IDX(idx)) {
1001 p_cellcb = GET_CELLCB(idx);
1002 }
1003 else {
1004 return(E_ID);
1005 }
1006
1007 /* ここに処理本体を記述します #_TEFB_# */
1008 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
1009 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
1010}
1011
1012/* #[<ENTRY_FUNC>]# eTDR_getLong
1013 * name: eTDR_getLong
1014 * global_name: tTDR_eTDR_getLong
1015 * oneway: false
1016 * #[</ENTRY_FUNC>]# */
1017Inline ER
1018eTDR_getLong(CELLIDX idx, long_t* out)
1019{
1020 ER_UINT er_sz;
1021 CELLCB *p_cellcb;
1022 if (VALID_IDX(idx)) {
1023 p_cellcb = GET_CELLCB(idx);
1024 }
1025 else {
1026 return(E_ID);
1027 }
1028
1029 /* ここに処理本体を記述します #_TEFB_# */
1030 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
1031 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
1032}
1033
1034/* #[<ENTRY_FUNC>]# eTDR_putUChar
1035 * name: eTDR_putUChar
1036 * global_name: tTDR_eTDR_putUChar
1037 * oneway: false
1038 * #[</ENTRY_FUNC>]# */
1039Inline ER
1040eTDR_putUChar(CELLIDX idx, unsigned char in)
1041{
1042 CELLCB *p_cellcb;
1043 if (VALID_IDX(idx)) {
1044 p_cellcb = GET_CELLCB(idx);
1045 }
1046 else {
1047 return(E_ID);
1048 } /* end if VALID_IDX(idx) */
1049
1050 /* ここに処理本体を記述します #_TEFB_# */
1051 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
1052}
1053
1054/* #[<ENTRY_FUNC>]# eTDR_putUShort
1055 * name: eTDR_putUShort
1056 * global_name: tTDR_eTDR_putUShort
1057 * oneway: false
1058 * #[</ENTRY_FUNC>]# */
1059Inline ER
1060eTDR_putUShort(CELLIDX idx, ushort_t in)
1061{
1062 CELLCB *p_cellcb;
1063 if (VALID_IDX(idx)) {
1064 p_cellcb = GET_CELLCB(idx);
1065 }
1066 else {
1067 return(E_ID);
1068 } /* end if VALID_IDX(idx) */
1069
1070 /* ここに処理本体を記述します #_TEFB_# */
1071 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
1072}
1073
1074/* #[<ENTRY_FUNC>]# eTDR_putUInt
1075 * name: eTDR_putUInt
1076 * global_name: tTDR_eTDR_putUInt
1077 * oneway: false
1078 * #[</ENTRY_FUNC>]# */
1079Inline ER
1080eTDR_putUInt(CELLIDX idx, uint_t in)
1081{
1082 CELLCB *p_cellcb;
1083 if (VALID_IDX(idx)) {
1084 p_cellcb = GET_CELLCB(idx);
1085 }
1086 else {
1087 return(E_ID);
1088 } /* end if VALID_IDX(idx) */
1089
1090 /* ここに処理本体を記述します #_TEFB_# */
1091 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
1092}
1093
1094/* #[<ENTRY_FUNC>]# eTDR_putULong
1095 * name: eTDR_putULong
1096 * global_name: tTDR_eTDR_putULong
1097 * oneway: false
1098 * #[</ENTRY_FUNC>]# */
1099Inline ER
1100eTDR_putULong(CELLIDX idx, ulong_t in)
1101{
1102 CELLCB *p_cellcb;
1103 if (VALID_IDX(idx)) {
1104 p_cellcb = GET_CELLCB(idx);
1105 }
1106 else {
1107 return(E_ID);
1108 } /* end if VALID_IDX(idx) */
1109
1110 /* ここに処理本体を記述します #_TEFB_# */
1111 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
1112}
1113
1114/* #[<ENTRY_FUNC>]# eTDR_getUChar
1115 * name: eTDR_getUChar
1116 * global_name: tTDR_eTDR_getUChar
1117 * oneway: false
1118 * #[</ENTRY_FUNC>]# */
1119Inline ER
1120eTDR_getUChar(CELLIDX idx, unsigned char* out)
1121{
1122 ER_UINT er_sz;
1123 CELLCB *p_cellcb;
1124 if (VALID_IDX(idx)) {
1125 p_cellcb = GET_CELLCB(idx);
1126 }
1127 else {
1128 return(E_ID);
1129 } /* end if VALID_IDX(idx) */
1130
1131 /* ここに処理本体を記述します #_TEFB_# */
1132 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
1133 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
1134}
1135
1136/* #[<ENTRY_FUNC>]# eTDR_getUShort
1137 * name: eTDR_getUShort
1138 * global_name: tTDR_eTDR_getUShort
1139 * oneway: false
1140 * #[</ENTRY_FUNC>]# */
1141Inline ER
1142eTDR_getUShort(CELLIDX idx, unsigned short* out)
1143{
1144 ER_UINT er_sz;
1145 CELLCB *p_cellcb;
1146 if (VALID_IDX(idx)) {
1147 p_cellcb = GET_CELLCB(idx);
1148 }
1149 else {
1150 return(E_ID);
1151 } /* end if VALID_IDX(idx) */
1152
1153 /* ここに処理本体を記述します #_TEFB_# */
1154 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
1155 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
1156}
1157
1158/* #[<ENTRY_FUNC>]# eTDR_getUInt
1159 * name: eTDR_getUInt
1160 * global_name: tTDR_eTDR_getUInt
1161 * oneway: false
1162 * #[</ENTRY_FUNC>]# */
1163Inline ER
1164eTDR_getUInt(CELLIDX idx, uint_t* out)
1165{
1166 ER_UINT er_sz;
1167 CELLCB *p_cellcb;
1168 if (VALID_IDX(idx)) {
1169 p_cellcb = GET_CELLCB(idx);
1170 }
1171 else {
1172 return(E_ID);
1173 } /* end if VALID_IDX(idx) */
1174
1175 /* ここに処理本体を記述します #_TEFB_# */
1176 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
1177 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
1178}
1179
1180/* #[<ENTRY_FUNC>]# eTDR_getULong
1181 * name: eTDR_getULong
1182 * global_name: tTDR_eTDR_getULong
1183 * oneway: false
1184 * #[</ENTRY_FUNC>]# */
1185Inline ER
1186eTDR_getULong(CELLIDX idx, ulong_t* out)
1187{
1188 ER_UINT er_sz;
1189 CELLCB *p_cellcb;
1190 if (VALID_IDX(idx)) {
1191 p_cellcb = GET_CELLCB(idx);
1192 }
1193 else {
1194 return(E_ID);
1195 } /* end if VALID_IDX(idx) */
1196
1197 /* ここに処理本体を記述します #_TEFB_# */
1198 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
1199 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
1200}
1201
1202/* #[<ENTRY_FUNC>]# eTDR_putIntptr
1203 * name: eTDR_putIntptr
1204 * global_name: tTDR_eTDR_putIntptr
1205 * oneway: false
1206 * #[</ENTRY_FUNC>]# */
1207Inline ER
1208eTDR_putIntptr(CELLIDX idx, const intptr_t ptr)
1209{
1210 CELLCB *p_cellcb;
1211 if (VALID_IDX(idx)) {
1212 p_cellcb = GET_CELLCB(idx);
1213 }
1214 else {
1215 return(E_ID);
1216 }
1217
1218 /* ここに処理本体を記述します #_TEFB_# */
1219 return cChannel_send( (int8_t *)&ptr, (int16_t)sizeof( ptr ), VAR_tmo );
1220}
1221
1222/* #[<ENTRY_FUNC>]# eTDR_getIntptr
1223 * name: eTDR_getIntptr
1224 * global_name: tTDR_eTDR_getIntptr
1225 * oneway: false
1226 * #[</ENTRY_FUNC>]# */
1227Inline ER
1228eTDR_getIntptr(CELLIDX idx, intptr_t* ptr)
1229{
1230 ER_UINT er_sz;
1231 CELLCB *p_cellcb;
1232 if (VALID_IDX(idx)) {
1233 p_cellcb = GET_CELLCB(idx);
1234 }
1235 else {
1236 return(E_ID);
1237 }
1238
1239 /* ここに処理本体を記述します #_TEFB_# */
1240 er_sz = cChannel_receive( (int8_t *)ptr, (int16_t)sizeof( *ptr ), VAR_tmo );
1241 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *ptr ) ? E_OK : E_BOVR );
1242}
1243
1244
Note: See TracBrowser for help on using the repository browser.