Changeset 389 for azure_iot_hub/trunk/asp3_dcre/syssvc/tSerialPort.cdl
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/syssvc/tSerialPort.cdl
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 * å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 * è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 * ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 * ã¨ï¼ 30 * (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 * (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 * å ±åãããã¨ï¼ 38 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 * 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 * å 46 責ãããã¨ï¼ 11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * $Id$ … … 57 42 58 43 /* 59 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«44 * シリアルインタフェースドライバのコンポーネント記述ファイル 60 45 */ 61 46 62 47 /* 63 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããTECSãç¨ããã«å¼ã³åºãããã«ãå¿ 64 è¦ 65 * ãªå®ç¾©ã®å込㿠48 * シリアルインタフェースドライバをTECSを用いずに呼び出すためにも必要 49 * な定義の取込み 66 50 */ 67 51 import_C("syssvc/serial.h"); 68 52 69 53 /* 70 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã·ã°ããã£54 * シリアルインタフェースドライバのシグニチャ 71 55 */ 72 56 signature sSerialPort { … … 80 64 81 65 /* 82 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾åé¨ãæä¾ããé¢æ°66 * シリアルインタフェースドライバのターゲット依存部が提供する関数 83 67 */ 84 68 signature sSIOPort { … … 92 76 93 77 /* 94 * ã³ã¼ã«ããã¯ã«ã¼ãã³ã®èå¥çªå·ï¼cbrtnãã©ã¡ã¼ã¿ã«ç¨ããï¼78 * コールバックルーチンの識別番号(cbrtnパラメータに用いる) 95 79 */ 96 const uint_t SIOSendReady = 1; /* éä¿¡å¯è½ã³ã¼ã«ããã¯*/97 const uint_t SIOReceiveReady = 2; /* åä¿¡éç¥ã³ã¼ã«ããã¯*/80 const uint_t SIOSendReady = 1; /* 送信可能コールバック */ 81 const uint_t SIOReceiveReady = 2; /* 受信通知コールバック */ 98 82 99 83 /* 100 * ã¿ã¼ã²ããä¾åé¨ããã®ã³ã¼ã«ããã¯84 * ターゲット依存部からのコールバック 101 85 */ 102 86 [callback] … … 107 91 108 92 /* 109 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã管çç¨ã®ã·ã°ããã£ï¼çµäºå¦çã«ã¼ãã³110 * ããã®ä½¿ç¨ãæ³å®ï¼93 * シリアルインタフェースドライバ管理用のシグニチャ(終了処理ルーチン 94 * からの使用を想定) 111 95 */ 112 96 signature snSerialPortManage { … … 115 99 116 100 /* 117 * ã·ãªã¢ã«ãã¼ãã®å¶å¾¡é¨ã®ã»ã«ã¿ã¤ã101 * シリアルポートの制御部のセルタイプ 118 102 */ 119 103 celltype tSerialPortMain { … … 121 105 entry snSerialPortManage enSerialPortManage; 122 106 123 call sSIOPort cSIOPort; /* ç°¡æSIOãã©ã¤ãã¨ã®æ¥ç¶*/107 call sSIOPort cSIOPort; /* 簡易SIOドライバとの接続 */ 124 108 entry siSIOCBR eiSIOCBR; 125 109 126 call sSemaphore cSendSemaphore; /* éä¿¡ç¨ã»ããã©ã¨ã®æ¥ç¶*/110 call sSemaphore cSendSemaphore; /* 送信用セマフォとの接続 */ 127 111 call siSemaphore ciSendSemaphore; 128 call sSemaphore cReceiveSemaphore; /* åä¿¡ç¨ã»ããã©ã¨ã®æ¥ç¶*/112 call sSemaphore cReceiveSemaphore; /* 受信用セマフォとの接続 */ 129 113 call siSemaphore ciReceiveSemaphore; 130 114 131 115 attr { 132 uint_t receiveBufferSize = 256; /* åä¿¡ãããã¡ãµã¤ãº*/133 uint_t sendBufferSize = 256; /* éä¿¡ãããã¡ãµã¤ãº*/116 uint_t receiveBufferSize = 256; /* 受信バッファサイズ */ 117 uint_t sendBufferSize = 256; /* 送信バッファサイズ */ 134 118 }; 135 119 var { 136 bool_t openFlag = C_EXP("false"); /* ãªã¼ãã³æ¸ã¿ãã©ã°*/137 bool_t errorFlag; /* ã¨ã©ã¼ãã©ã°*/138 uint_t ioControl; /* åä½å¶å¾¡ã®è¨å®å¤*/120 bool_t openFlag = C_EXP("false"); /* オープン済みフラグ */ 121 bool_t errorFlag; /* エラーフラグ */ 122 uint_t ioControl; /* 動作制御の設定値 */ 139 123 140 [size_is(receiveBufferSize)] char *receiveBuffer; /* åä¿¡ãããã¡ */ 141 uint_t receiveReadPointer; /* åä¿¡ãããã¡èªåºããã¤ã³ã¿ */ 142 uint_t receiveWritePointer; /* åä¿¡ãããã¡æ¸è¾¼ã¿ãã¤ã³ã¿ */ 143 uint_t receiveCount; /* åä¿¡ãããã¡ä¸ã®æåæ° */ 144 char receiveFlowControl; /* éãã¹ãSTART/STOP */ 145 bool_t receiveStopped; /* STOPãéã£ãç¶æ 146 ãï¼ */ 124 [size_is(receiveBufferSize)] char *receiveBuffer; /* 受信バッファ */ 125 uint_t receiveReadPointer; /* 受信バッファ読出しポインタ */ 126 uint_t receiveWritePointer; /* 受信バッファ書込みポインタ */ 127 uint_t receiveCount; /* 受信バッファ中の文字数 */ 128 char receiveFlowControl; /* 送るべきSTART/STOP */ 129 bool_t receiveStopped; /* STOPを送った状態か? */ 147 130 148 [size_is(sendBufferSize)] char *sendBuffer; /* éä¿¡ãããã¡ */ 149 uint_t sendReadPointer; /* éä¿¡ãããã¡èªåºããã¤ã³ã¿ */ 150 uint_t sendWritePointer; /* éä¿¡ãããã¡æ¸è¾¼ã¿ãã¤ã³ã¿ */ 151 uint_t sendCount; /* éä¿¡ãããã¡ä¸ã®æåæ° */ 152 bool_t sendStopped; /* STOPãåãåã£ãç¶æ 153 ãï¼ */ 131 [size_is(sendBufferSize)] char *sendBuffer; /* 送信バッファ */ 132 uint_t sendReadPointer; /* 送信バッファ読出しポインタ */ 133 uint_t sendWritePointer; /* 送信バッファ書込みポインタ */ 134 uint_t sendCount; /* 送信バッファ中の文字数 */ 135 bool_t sendStopped; /* STOPを受け取った状態か? */ 154 136 }; 155 137 }; 156 138 157 139 /* 158 * ã·ãªã¢ã«ãã¼ããã©ã¤ãï¼è¤åã»ã«ï¼ã®ã»ã«ã¿ã¤ã140 * シリアルポートドライバ(複合セル)のセルタイプ 159 141 * 160 * ã·ãªã¢ã«ãã¼ãã®å¶å¾¡é¨ã¨ï¼ããã使ç¨ãã2ã¤ã®ã»ããã©ï¼åä¿¡ç¨ã¨é161 * ä¿¡ç¨ï¼ãè¤ååãã¦ï¼1ã¤ã®ã³ã³ãã¼ãã³ãã¨ãã¦ããï¼142 * シリアルポートの制御部と,それが使用する2つのセマフォ(受信用と送 143 * 信用)を複合化して,1つのコンポーネントとしている. 162 144 */ 163 145 composite tSerialPort { … … 165 147 entry snSerialPortManage enSerialPortManage; 166 148 167 call sSIOPort cSIOPort; /* ç°¡æSIOãã©ã¤ãã¨ã®æ¥ç¶*/149 call sSIOPort cSIOPort; /* 簡易SIOドライバとの接続 */ 168 150 entry siSIOCBR eiSIOCBR; 169 151 170 152 attr { 171 uint_t receiveBufferSize = 256; /* åä¿¡ãããã¡ãµã¤ãº*/172 uint_t sendBufferSize = 256; /* éä¿¡ãããã¡ãµã¤ãº*/153 uint_t receiveBufferSize = 256; /* 受信バッファサイズ */ 154 uint_t sendBufferSize = 256; /* 送信バッファサイズ */ 173 155 }; 174 156 175 /* åä¿¡ç¨ã®ã»ããã©*/157 /* 受信用のセマフォ */ 176 158 cell tSemaphore ReceiveSemaphore { 177 159 attribute = C_EXP("TA_NULL"); … … 180 162 }; 181 163 182 /* éä¿¡ç¨ã®ã»ããã©*/164 /* 送信用のセマフォ */ 183 165 cell tSemaphore SendSemaphore { 184 166 attribute = C_EXP("TA_NULL"); … … 187 169 }; 188 170 189 /* ã·ãªã¢ã«ãã¼ãã®å¶å¾¡é¨*/171 /* シリアルポートの制御部 */ 190 172 cell tSerialPortMain SerialPortMain { 191 /* ã»ããã©ã¨ã®çµå*/173 /* セマフォとの結合 */ 192 174 cReceiveSemaphore = ReceiveSemaphore.eSemaphore; 193 175 ciReceiveSemaphore = ReceiveSemaphore.eiSemaphore; … … 195 177 ciSendSemaphore = SendSemaphore.eiSemaphore; 196 178 197 /* å¼ã³å£ã®ã¨ã¯ã¹ãã¼ã*/179 /* 呼び口のエクスポート */ 198 180 cSIOPort => composite.cSIOPort; 199 181 200 /* å±æ§ã®ç¶æ¿*/182 /* 属性の継承 */ 201 183 receiveBufferSize = composite.receiveBufferSize; 202 184 sendBufferSize = composite.sendBufferSize; 203 185 }; 204 186 205 /* åãå£ã®ã¨ã¯ã¹ãã¼ã*/187 /* 受け口のエクスポート */ 206 188 composite.eSerialPort => SerialPortMain.eSerialPort; 207 189 composite.enSerialPortManage => SerialPortMain.enSerialPortManage;
Note:
See TracChangeset
for help on using the changeset viewer.