2 * @fileOverview AnalogInクラスを定義します。
\r
10 * <a href="https://mbed.org/handbook/AnalogIn">mbed::AnalogIn</a>と同等の機能を持ちます。
\r
12 * @name mbedJS.AnalogIn
\r
13 * @param {mbedJS.Mcu} i_mcu
\r
14 * インスタンスをバインドするMCUオブジェクトです。
\r
15 * @param {PinName} i_params
\r
17 * @param {HashMap|Generator} i_event
\r
18 * 非同期イベントハンドラの連想配列、又はGeneratorです。
\r
20 * 非同期イベントハンドラの場合、関数はイベントハンドラで結果を通知します。
\r
22 * <li>{function()} onNew -
\r
23 * インスタンスが使用可能になった時に呼び出されます。
\r
25 * <li>{function(v)} onRead -
\r
26 * read関数のコールバック関数です。
\r
28 * <li>{int} v - 現在のピンの値です。</li>
\r
31 * <li>{function(v)} onRead_u16 -
\r
32 * read_u16関数のコールバック関数です。
\r
34 * <li>{int} v - 現在のピンの値です。</li>
\r
39 * Generatorを指定した場合、コールバック関数の引数はyiledの戻り値として取得できます。
\r
41 * @return {mbedJS.AnalogIn}
\r
42 * @example //Callback
\r
43 * var mcu=new mbedJS.Mcu("ws://192.168.128.39/rpc/",
\r
46 * var pin=new mbedJS.AnalogIn(mcu,mbedJS.PinName.A0,{
\r
50 * onRead:function(v)
\r
54 * onRead_u16:function(v){
\r
58 * onClose:function(){},
\r
59 * onError:function(){}
\r
61 * @example //Generator
\r
62 * var g=function*(){
\r
64 * var mcu=new mbedJS.Mcu("ws://192.168.128.39/rpc/",g);
\r
65 * yield mcu.waitForNew();
\r
66 * var pin=new mbedJS.AnalogIn(mcu,mbedJS.PinName.A0,g);
\r
67 * yield pin.waitForNew();
\r
68 * var v=yield pin.read();
\r
69 * v=yield pin.read_u16();
\r
70 * yield mcu.close();
\r
76 var CLASS=function AnalogIn(i_mcu,i_params,i_handler)
\r
82 if(MI.isGenerator(i_handler)){_t._gen=i_handler;}
\r
83 else if(i_handler){_t._event=i_handler}
\r
86 _t._oid=j.result[0];
\r
87 if(_t._event.onNew){_t._event.onNew();}
\r
88 if(_t._gen){_t._gen.next(_t);}
\r
91 MI.assertInt(i_params);
\r
92 return _t._mcu.rpc(_t.RPC_NS+":_new1",i_params,cb);
\r
94 throw new MI.MiMicException(e);
\r
100 RPC_NS:"mbedJS:AnalogIn",
\r
101 /** @private 最後にコールしたAPIです。*/
\r
103 /** @private Generatorモードの場合にGeneratorオブジェクトを保持します。*/
\r
105 /** @private コールバック関数の連想配列です。要素はコンストラクタを参照してください。*/
\r
107 /** @private リモートインスタンスのオブジェクトIDです。*/
\r
110 * Generatorモードのときに使用する関数です。
\r
111 * Generatorモードの時は、yieldと併用してnew AnalogIn()の完了を待ちます。
\r
112 * @name mbedJS.AnalogIn#waitForNew
\r
115 waitForNew:function AnalogIn_waitForNew()
\r
118 if(this._lc!=CLASS){throw new MI.MiMicException(MI.Error.NG_ILLEGAL_CALL);}
\r
119 this._lc=CLASS.waitForNew;
\r
121 throw new MI.MiMicException(e);
\r
126 * 関数の完了時にonReadイベントが発生します。
\r
127 * Generatorモードの時は、yieldと併用して完了を待機できます。
\r
128 * @name mbedJS.AnalogIn#read
\r
131 * Callbackモードの時はRPCメソッドのインデクスを返します。
\r
133 * Generatorモードの時はピンの値を返します。
\r
135 read:function AnalogIn_read()
\r
139 if(this._gen && this._lc){throw new MI.MiMicException(MI.Error.NG_YIELD_NOT_COMPLETED);}
\r
141 return _t._mcu.rpc(_t.RPC_NS+":read_fx",_t._oid,
\r
144 var v=j.result[0]/10000;
\r
145 if(_t._event.onRead){_t._event.onRead(v);}
\r
146 if(_t._gen){_t._gen.next(v);}
\r
151 throw new MI.MiMicException(e);
\r
156 * 関数の完了時にonRead_u16イベントが発生します。
\r
157 * Generatorモードの時は、yieldと併用して完了を待機できます。
\r
158 * @name mbedJS.AnalogIn#read_u16
\r
161 * Callbackモードの時はRPCメソッドのインデクスを返します。
\r
163 * Generatorモードの時はピンの値を返します。
\r
165 read_u16:function AnalogIn_read_u16()
\r
169 if(this._gen && this._lc){throw new MI.MiMicException(MI.Error.NG_YIELD_NOT_COMPLETED);}
\r
170 _t._lc=CLASS.read_u16;
\r
171 return _t._mcu.rpc(_t.RPC_NS+":read_u16",_t._oid,
\r
175 if(_t._event.onRead_u16){_t._event.onRead_u16(v);}
\r
176 if(_t._gen){_t._gen.next(v);}
\r
181 throw new MI.MiMicException(e);
\r