*/\r
NS.hexout=function hexout(i_val,i_digit)\r
{\r
- try{\r
- var dt=["","0","00","000","0000","00000","000000","0000000"];\r
- var s=(i_val>>>0).toString(16).toLowerCase();\r
- if(s.length>i_digit){\r
- //マイナスだともれなくエラー\r
- throw new MiMicException(EE.NG);\r
- }\r
- var l=i_digit-s.length;\r
- return dt[l]+s;\r
- }catch(e){\r
- throw new MiMicException(e);\r
+ var dt=["","0","00","000","0000","00000","000000","0000000"];\r
+ var s=(i_val>>>0).toString(16).toLowerCase();\r
+ if(s.length>i_digit){\r
+ //マイナスだともれなくエラー\r
+ throw new NS.MiMicException(EE.NG);\r
}\r
+ var l=i_digit-s.length;\r
+ return dt[l]+s;\r
};\r
/**\r
* @private\r
return s;\r
};\r
/**\r
+ * @private\r
+ * 32bit値のエンディアンを交換します。\r
+ * @param v\r
+ * 交換する値\r
+ * @return\r
+ * 交換後の値\r
+ */\r
+ NS.bswap32=function bswap32(v)\r
+ {\r
+ return ((v<<24)&0xff000000)|((v<<16)&0xff0000)|((v>>16)&0xff00)|((v>>24)&0xff);\r
+ };\r
+ /**\r
+ * @private\r
+ * バイナリ文字列をバイト値として配列に変換します。\r
+ * @param v\r
+ * 数値配列\r
+ */\r
+ NS.bstr2byteArray=function bstr2byteArray(v)\r
+ {\r
+ var r=new Array();\r
+ if(v.length%2!=0){\r
+ throw new NS.MiMicException(); \r
+ }\r
+ for(var i=0;i<v.length;i+=2){\r
+ r.push(parseInt(v.substr(i,2),16));\r
+ }\r
+ return r;\r
+ };\r
+ /**\r
+ * @private\r
+ * バイナリ文字列を32bitUInt数値配列に変換します。\r
+ * Uint値はLittleEndianとして解釈します。\r
+ * @param {int[]} v\r
+ * 数値配列\r
+ */\r
+ NS.bstr2uintArray=function bstr2uintArray(v)\r
+ {\r
+ var r=new Array();\r
+ if(v.length%8!=0){\r
+ throw new NS.MiMicException(); \r
+ }\r
+ for(var i=0;i<v.length;i+=8){\r
+ r.push(NS.bswap32(parseInt(v.substr(i,8),16)));\r
+ }\r
+ return r;\r
+ };\r
+ /**\r
+ * ByteArrayをBinarayStringに変換します。\r
+ * @param v\r
+ * @return {String}\r
+ */\r
+ NS.byteArray2bstr=function byteArray2bstr(v)\r
+ {\r
+ var s=NS.isArray(v)?v:[v];\r
+ var r="";\r
+ for(var i=0;i<s.length;i++){\r
+ r+=NS.hexout(s[i],2,16);\r
+ }\r
+ return r;\r
+ };\r
+ /**\r
+ * UInt32ArrayをBinarayStringに変換します。\r
+ * 出力はLittleEndianの配列です。\r
+ * @param v\r
+ * UInt32の配列\r
+ * @return {String}\r
+ */ \r
+ NS.uintArray2bstr=function uintArray2bstr(v)\r
+ {\r
+ var s=NS.isArray(v)?v:[v];\r
+ var r="";\r
+ for(var i=0;i<s.length;i++){\r
+ r+=NS.hexout(NS.bswap32(s[i]),8,16);\r
+ }\r
+ return r;\r
+ };\r
+ \r
+ /**\r
* 連想配列の内容をルートオブジェクト直下に展開します。\r
* この関数は名前空間を汚染します。十分に注意して使用してください。\r
* @name MiMicJS.using\r
case '}':\r
rx+='})';\r
rxst=0;\r
- {\r
+ {log(rx);\r
//JSONがたぶん確定\r
var j=eval(rx);\r
for(var i2=q.length-1;i2>=0;i2--){\r
*/\r
sendMethod:function callJsonRpc(i_method,i_params,i_callback)\r
{\r
- this._ws.send("{\"verdion\":\"2.0\",\"method\":\""+i_method+"\",\"params\":["+i_params+"],\"id\":"+this._method_id+"}");\r
+ var v="{\"verdion\":\"2.0\",\"method\":\""+i_method+"\",\"params\":["+i_params+"],\"id\":"+this._method_id+"}";\r
+ log(v);\r
+ this._ws.send(v);\r
this._q.push([this._method_id,i_callback]);//キューに記録\r
this._method_id=(this._method_id+1)&0x0fffffff;//IDインクリメント\r
return this._method_id;\r