* @function\r
*/\r
close:function MCU_close(){\r
- if(this._gen && this._lc){throw new MI.MiMicException(MI.Error.NG_YIELD_NOT_COMPLETED);}\r
+ MI._assertYield.call(this);\r
this._lc=CLASS.close;\r
this._rpc.close();\r
},\r
getInfo:function(){\r
try{\r
var _t=this;\r
- if(this._gen && this._lc){throw new MI.MiMicException(MI.Error.NG_YIELD_NOT_COMPLETED);}\r
+ MI._assertYield.call(_t);\r
+ var cb=MI._getCb(arguments,_t._event.onGetInfo);\r
_t._lc=CLASS.getInfo;\r
return _t.rpc(_t.RPC_NS+":getInfo","",\r
- function (j)\r
- {\r
- var r=j.result;\r
- var v={version:r[0],platform:r[1],mcu:{name:r[3],eth:r[2]},memory:{free:r[4]}};\r
- if(_t._event.onGetInfo){_t._event.onGetInfo(v);}\r
- if(_t._gen){_t._gen.next(v);}\r
- _t._lc=null;\r
- }\r
+ function (j)\r
+ {\r
+ var r=j.result;\r
+ var v={version:r[0],platform:r[1],mcu:{name:r[3],eth:r[2]},memory:{free:r[4]}};\r
+ if(cb){cb(v);}\r
+ if(_t._gen){_t._gen.next(v);}\r
+ _t._lc=null;\r
+ }\r
);\r
}catch(e){\r
throw new MI.MiMicException(e);\r
disposeObject:function(i_oid){\r
try{\r
var _t=this;\r
- if(this._gen && this._lc){throw new MI.MiMicException(MI.Error.NG_YIELD_NOT_COMPLETED);}\r
+ MI._assertYield.call(_t);\r
+ var cb=MI._getCb(arguments,_t._event.onDisposeObject);\r
_t._lc=CLASS.disposeObject;\r
return _t.rpc(_t.RPC_NS+":disposeObject",i_oid,\r
- function (j)\r
- {\r
- var v=j.result[0]?true:false;\r
- if(_t._event.onDisposeObject){_t._event.onDisposeObject(v);}\r
- if(_t._gen){_t._gen.next(v);}\r
- _t._lc=null;\r
- }\r
+ function (j)\r
+ {\r
+ var v=j.result[0]?true:false;\r
+ if(cb){cb(v);}\r
+ if(_t._gen){_t._gen.next(v);}\r
+ _t._lc=null;\r
+ }\r
+ );\r
+ }catch(e){\r
+ throw new MI.MiMicException(e);\r
+ } \r
+ },\r
+ /**\r
+ * 内部関数です.\r
+ * ペリフェラルクラスから_dispose.apply(this,arguments)でコールしてください。\r
+ * @private\r
+ */\r
+ _dispose:function(){\r
+ try{\r
+ var _t=this;\r
+ MI._assertYield.call(_t);\r
+ var cb=MI._getCb(arguments,_t._event.onDispose);\r
+ _t._lc=_t.dispose;//CLASS.disposeが使えないんでIDに関数そのものを使う\r
+ return _t._mcu.rpc(_t._mcu.RPC_NS+":disposeObject",_t._oid,\r
+ function (j)\r
+ {\r
+ var v=j.result[0]?true:false;\r
+ if(cb){cb(v);}\r
+ if(_t._gen){_t._gen.next(v);}\r
+ _t._lc=null;\r
+ }\r
);\r
}catch(e){\r
throw new MI.MiMicException(e);\r
} \r
} \r
+ \r
}\r
NS.Mcu=CLASS;\r
}());
\ No newline at end of file