OSDN Git Service

ff28b7663cf8e1060b1f9cbaf6cdaf781debf3a5
[mimic/MiMicSDK.git] / misc / mbedJS / mbddJS.API / mbedJS / mbed.AnalogIn.js
1 (function(){\r
2 var NS=mbedJS;\r
3 var MI=MiMicJS;\r
4 \r
5 /**\r
6  * @name mbedJS.AnalogIn\r
7  * AnalogInクラスです。\r
8  * <a href="https://mbed.org/handbook/AnalogIn">mbed::AnalogIn</a>と同等の機能を持ちます。\r
9  * @constructor\r
10  * @param {mbedJS.Mcu} i_mcu\r
11  * インスタンスをバインドするMCUオブジェクトです。\r
12  * @param {PinName} i_params\r
13  * ピンIDを指定します。\r
14  * @param {HashMap|Generator} i_event\r
15  * 非同期イベントハンドラの連想配列、又はGeneratorです。\r
16  * <p>\r
17  * 非同期イベントハンドラの場合、関数はイベントハンドラで結果を通知します。\r
18  * <ul>\r
19  * <li>{function()} onNew -\r
20  * インスタンスが使用可能になった時に呼び出されます。\r
21  * </li>\r
22  * <li>{function(v)} onRead -\r
23  * read関数のコールバック関数です。\r
24  *      <ul>\r
25  *              <li>{int} v - 現在のピンの値です。</li>\r
26  *      </ul>\r
27  * </li>\r
28  * <li>{function(v)} onRead_u16 -\r
29  * read_u16関数のコールバック関数です。\r
30  *      <ul>\r
31  *              <li>{int} v - 現在のピンの値です。</li>\r
32  *      </ul>\r
33  * </li>\r
34  * </ul>\r
35  * <p>\r
36  * Generatorを指定した場合、コールバック関数の引数はyiledの戻り値として取得できます。\r
37  * <p>\r
38  * @return {mbedJS.AnalogIn}\r
39  * @example\r
40  */\r
41 var CLASS=function AnalogIn(i_mcu,i_params,i_handler)\r
42 {\r
43         try{\r
44                 var _t=this;\r
45                 _t._mcu=i_mcu;\r
46                 _t._lc=CLASS;\r
47                 if(MI.isGenerator(i_handler)){_t._gen=i_handler;}\r
48                 else if(i_handler){_t._event=i_handler}\r
49                 function cb(j)\r
50                 {\r
51                         _t._oid=j.result[0];\r
52                         if(_t._event.onNew){_t._event.onNew();}\r
53                         if(_t._gen){_t._gen.next(_t);}\r
54                         _t._lc=null;\r
55                 }\r
56                 MI.assertInt(i_params);         \r
57                 return _t._mcu.rpc(_t.RPC_NS+":_new1",i_params,cb);\r
58         }catch(e){\r
59                 throw new MI.MiMicException(e);\r
60         }       \r
61 }\r
62 CLASS.prototype=\r
63 {\r
64         /** @private */\r
65         RPC_NS:"mbedJS:AnalogIn",\r
66         /** @private 最後にコールしたAPIです。*/\r
67         _lc:null,\r
68         /** @private Generatorモードの場合にGeneratorオブジェクトを保持します。*/\r
69         _gen:null,\r
70         /** @private コールバック関数の連想配列です。要素はコンストラクタを参照してください。*/\r
71         _event:{},\r
72         /** @private リモートインスタンスのオブジェクトIDです。*/\r
73         _oid:null,\r
74         /**\r
75          * @name mbedJS.AnalogIn#waitForNew\r
76          * @function\r
77          * Generatorモードのときに使用する関数です。\r
78          * Generatorモードの時は、yieldと併用してnew AnalogIn()の完了を待ちます。\r
79          */\r
80         waitForNew:function AnalogIn_waitForNew()\r
81         {\r
82                 try{\r
83                         if(this._lc!=CLASS){throw new MI.MiMicException(MI.Error.NG_ILLEGAL_CALL);}\r
84                         this._lc=CLASS.waitForNew;\r
85                 }catch(e){\r
86                         throw new MI.MiMicException(e);\r
87                 }\r
88         },\r
89         /**\r
90          * @name mbedJS.AnalogIn#read\r
91          * @function\r
92          * ピンから値を読み込みます。\r
93          * 関数の完了時にonReadイベントが発生します。\r
94          * Generatorモードの時は、yieldと併用して完了を待機できます。\r
95          * @return {int|float}\r
96          * <p>Callbackモードの時はRPCメソッドのインデクスを返します。</p>\r
97          * <p>Generatorモードの時はピンの値を返します。</p>\r
98          */\r
99         read:function AnalogIn_read()\r
100         {\r
101                 try{\r
102                         var _t=this;\r
103                         if(this._gen && this._lc){throw new MI.MiMicException(MI.Error.NG_YIELD_NOT_COMPLETED);}\r
104                         _t._lc=CLASS.read;\r
105                         return _t._mcu.rpc(_t.RPC_NS+":read_fx",_t._oid,\r
106                         function (j)\r
107                         {\r
108                                 var v=j.result[0]/10000;\r
109                                 if(_t._event.onRead){_t._event.onRead(v);}\r
110                                 if(_t._gen){_t._gen.next(v);}\r
111                                  _t._lc=null;\r
112                         }\r
113                         );\r
114                 }catch(e){\r
115                         throw new MI.MiMicException(e);\r
116                 }                       \r
117         },\r
118         /**\r
119          * @name mbedJS.AnalogIn#read_u16\r
120          * @function\r
121          * ピンから値を読み込みます。\r
122          * 関数の完了時にonRead_u16イベントが発生します。\r
123          * Generatorモードの時は、yieldと併用して完了を待機できます。\r
124          * @return {int|int}\r
125          * <p>Callbackモードの時はRPCメソッドのインデクスを返します。</p>\r
126          * <p>Generatorモードの時はピンの値を返します。</p>\r
127          */\r
128         read_u16:function AnalogIn_read_u16()\r
129         {\r
130                 try{\r
131                         var _t=this;\r
132                         if(this._gen && this._lc){throw new MI.MiMicException(MI.Error.NG_YIELD_NOT_COMPLETED);}\r
133                         _t._lc=CLASS.read_u16;\r
134                         return _t._mcu.rpc(_t.RPC_NS+":read_u16",_t._oid,\r
135                         function (j)\r
136                         {\r
137                                 var v=j.result[0];\r
138                                 if(_t._event.onRead_u16){_t._event.onRead_u16(v);}\r
139                                 if(_t._gen){_t._gen.next(v);}\r
140                                  _t._lc=null;\r
141                         }\r
142                         );\r
143                 }catch(e){\r
144                         throw new MI.MiMicException(e);\r
145                 }                       \r
146         }       \r
147 }\r
148 NS.AnalogIn=CLASS;\r
149 }());