2 * @fileOverview AnalogOutクラスを定義します。
\r
10 * <a href="https://mbed.org/handbook/AnalogOut">mbed::AnalogOut</a>と同等の機能を持ちます。
\r
11 * @name mbedJS.AnalogOut
\r
13 * @param {mbedJS.Mcu} i_mcu
\r
14 * インスタンスをバインドするMCUオブジェクトです。
\r
15 * @param {PinName} i_params
\r
17 * @param {HashMap|Generator|function} i_handler
\r
18 * 非同期イベントハンドラの連想配列、Generator、コールバック関数の何れかを指定します。
\r
20 * 非同期イベントハンドラの場合、関数はイベントハンドラで結果を通知します。
\r
22 * <li>{function()} onNew -
\r
23 * インスタンスが使用可能になった時に呼び出されます。
\r
25 * <li>{function()} onWrite -
\r
26 * write関数のコールバック関数です。
\r
28 * <li>{function()} onWrite_u16 -
\r
29 * write関数のコールバック関数です。
\r
31 * <li>{function(v)} onRead -
\r
32 * read関数のコールバック関数です。
\r
34 * <li>{int} v - 現在のピンの値です。</li>
\r
39 * Generatorを指定した場合、コールバック関数の引数はyiledの戻り値として取得できます。
\r
42 * コールバック関数を指定した場合、RPCが完了したときに呼び出されます。メンバ関数のイベントハンドラは個別に設定する必要があります。
\r
44 * @return {mbedJS.AnalogOut}
\r
45 * @example //Callback
\r
46 * var mcu=new mbedJS.Mcu("192.168.128.39",
\r
49 * var pin=new mbedJS.AnalogOut(mcu,mbedJS.PinName.p18,{
\r
53 * onWrite:function()
\r
57 * onRead:function(v)
\r
61 * onWrite_u16:function()
\r
67 * onClose:function(){
\r
69 * onError:function(){
\r
72 * @example //Generator
\r
73 * var g=function*(){
\r
75 * var mcu=new mbedJS.Mcu("192.168.128.39",g);
\r
76 * yield mcu.waitForNew();
\r
77 * var pin=new mbedJS.AnalogOut(mcu,mbedJS.PinName.p18,g);
\r
78 * yield pin.waitForNew();
\r
79 * v=yield pin.write(0.3);
\r
80 * var v=yield pin.read();
\r
81 * v=yield pin.write_u16(1000);
\r
82 * var v=yield pin.read();
\r
83 * yield mcu.close();
\r
89 var CLASS=function AnalogOut(i_mcu,i_params,i_handler)
\r
95 var cb=MI._initHandler.call(_t,i_handler);
\r
96 MI.assertInt(i_params);
\r
97 _t._mcu.rpc(_t.RPC_NS+":_new1",i_params,
\r
100 _t._oid=j.result[0];
\r
102 if(_t._gen){_t._gen.next(_t);}
\r
107 throw new MI.MiMicException(e);
\r
113 RPC_NS:"mbedJS:AnalogOut",
\r
114 /** @private 最後にコールしたAPIです。*/
\r
116 /** @private Generatorモードの場合にGeneratorオブジェクトを保持します。*/
\r
118 /** @private コールバック関数の連想配列です。要素はコンストラクタを参照してください。*/
\r
120 /** @private リモートインスタンスのオブジェクトIDです。*/
\r
123 * Generatorモードのときに使用する関数です。
\r
124 * Generatorモードの時は、yieldと併用してnew AnalogOut()の完了を待ちます。
\r
125 * @name mbedJS.AnalogOut#waitForNew
\r
128 waitForNew:function AnalogOut_waitForNew()
\r
131 if(this._lc!=CLASS){throw new MI.MiMicException(MI.Error.NG_ILLEGAL_CALL);}
\r
132 this._lc=CLASS.waitForNew;
\r
134 throw new MI.MiMicException(e);
\r
139 * 関数の完了時にonWriteイベントが発生します。
\r
140 * Generatorモードの時は、yieldと併用して完了を待機できます。
\r
141 * @name mbedJS.AnalogOut#write
\r
143 * @param {float} i_value
\r
144 * [0,1]の範囲で値を指定します。
\r
146 * Callbackモードの時はRPCメソッドのインデクスを返します。
\r
148 write:function AnalogOut_write(i_value)
\r
152 var cb=MI._getCb(arguments,_t._event.onWrite);
\r
153 MI._assertYield.call(_t);
\r
154 _t._lc=CLASS.write;
\r
155 MI.assertNumber(i_value);
\r
156 return _t._mcu.rpc(_t.RPC_NS+":write_fx",_t._oid+","+Math.round(i_value*10000),
\r
159 if(_t._gen){_t._gen.next();}
\r
164 throw new MI.MiMicException(e);
\r
169 * 関数の完了時にonWrite_u16イベントが発生します。
\r
170 * Generatorモードの時は、yieldと併用して完了を待機できます。
\r
171 * @name mbedJS.AnalogOut#write_u16
\r
173 * @param {int} i_value
\r
174 * [0,0xffff]の範囲の整数を指定します。
\r
176 * Callbackモードの時はRPCメソッドのインデクスを返します。
\r
178 write_u16:function AnalogOut_write_u16(i_value)
\r
182 var cb=MI._getCb(arguments,_t._event.onWrite_u16);
\r
183 MI._assertYield.call(_t);
\r
184 _t._lc=CLASS.write;
\r
185 MI.assertInt(i_value);
\r
186 return _t._mcu.rpc(_t.RPC_NS+":write_u16",_t._oid+","+i_value,
\r
189 if(_t._gen){_t._gen.next();}
\r
194 throw new MI.MiMicException(e);
\r
199 * 関数の完了時にonReadイベントが発生します。
\r
200 * Generatorモードの時は、yieldと併用して完了を待機できます。
\r
201 * @name mbedJS.AnalogOut#read
\r
204 * Callbackモードの時はRPCメソッドのインデクスを返します。
\r
206 * Generatorモードの時はピンの値を返します。
\r
208 read:function AnalogOut_read()
\r
212 var cb=MI._getCb(arguments,_t._event.onRead);
\r
213 MI._assertYield.call(_t);
\r
215 return _t._mcu.rpc(_t.RPC_NS+":read_fx",_t._oid,
\r
218 var v=j.result[0]/10000;
\r
220 if(_t._gen){_t._gen.next(v);}
\r
225 throw new MI.MiMicException(e);
\r
229 * MCUに生成されているオブジェクトを破棄します。
\r
230 * @name mbedJS.AnalogOut#dispose
\r
233 dispose:function AnalogOut_dispose()
\r
235 return this._mcu._dispose.apply(this,arguments);
\r
239 NS.AnalogOut=CLASS;
\r