guohui hai 1 ano
pai
achega
0ebbb0e378
Modificáronse 2 ficheiros con 7 adicións e 978 borrados
  1. 7 8
      f407/tools/web/JS/data.js
  2. 0 970
      f407/tools/web/data.js

+ 7 - 8
f407/tools/web/JS/data.js

@@ -154,7 +154,7 @@ function bin_to_pkt(bin)
     var hdr = new bin_to_hdr(bin);
     
     var data = bin.slice(hdr.len);
-    if(data.byteLength>0 && hdr.dlen==data.byteLength) {
+    if(data.byteLength>0) {
         switch(hdr.type) {
             case PKT_TYPE.PKT_TYPE_POWER_CH:
                 hdr.powerc = new bin_to_powerc(data);
@@ -492,9 +492,8 @@ function hdr_to_bin(js) {
 }
 function info_to_bin(js) {
     var tmp, length=0;
-    var buffer = new ArrayBuffer(js.len);
-
-    var name = string_to_array(js.name);
+    var name = string_to_array(js.name, 32);
+    var buffer = new ArrayBuffer(js.len-name.byteLength);
 
     tmp = new DataView(buffer, length);
     tmp.setUint8(0,js.type,true);
@@ -655,17 +654,17 @@ function thr_to_bin(js) {
 function powerc_to_bin(js) {
     var bin,tmp, length=0;
     
-    bin = info_to_bin(js.info);
+    bin = new info_to_bin(js.info);
     
     for(var i=0; i<3; i++) {
-        tmp = power_to_bin(js.power[i]);
+        tmp = new power_to_bin(js.power[i]);
         bin = array_cat(bin, tmp);
     }
     
-    tmp = thr_to_bin(js.thr);
+    tmp = new thr_to_bin(js.thr);
     bin = array_cat(bin, tmp);
 
-    tmp = alarm_to_bin(js.alarm);
+    tmp = new alarm_to_bin(js.alarm);
     bin = array_cat(bin, tmp);
     
     var buf = new ArrayBuffer(8);

+ 0 - 970
f407/tools/web/data.js

@@ -1,970 +0,0 @@
-const MAGIC=0xdead;
-const PKT_TYPE=function(){
-    var len = 0;
-    return {
-        PKT_TYPE_ACK:len++,             
-        PKT_TYPE_PARAS:len++,             
-        PKT_TYPE_POWER_CH:len++,          //power_ch_t
-        PKT_TYPE_POWER_TOTAL:len++,       //power_total_t
-        PKT_TYPE_POWER_RESET:len++,
-        PKT_TYPE_CH_ALL:len++,
-        PKT_TYPE_SCAN:len++,
-        PKT_TYPE_FACTORY:len++,
-        PKT_TYPE_ALARM:len++,
-        PKT_TYPE_SENSOR:len++,
-        PKT_TYPE_BREAKER:len++,
-        PKT_TYPE_STAT:len++,
-        PKT_TYPE_MESG:len++,
-        PKT_TYPE_FILE:len++,
-    }
-}();
-const SUB_TYPE=function(){
-    var len = 0;
-    return {
-        SUB_TYPE_POWER_SWITCH:len++,             
-        SUB_TYPE_POWER_ALARM:len++,             
-        SUB_TYPE_POWER_THRESHOLD:len++,          //power_ch_t
-        SUB_TYPE_POWER_START_DELAY:len++,       //power_total_t
-        SUB_TYPE_POWER_STOP_DELAY:len++,
-    }
-}();
-
-const PDU_TYPE=function(){
-    var len = 0;
-    return {
-    PDU_AC_I1O1:len++,
-    PDU_DC_I1O1:len+=2,
-    PDU_AC_I3O3:len++,
-    PDU_AC_I3O1:len++,
-    PDU_AC_I3O1_H:len++,
-    }
-}();
-///////////////////////////////////////////////////////
-function array_to_string(data){
-    const decoder = new TextDecoder();
-    return decoder.decode(new Uint8Array(data));
-}
-
-function string_to_array(data,len){
-    const encoder = new TextEncoder(); // ĬÈÏ'utf-8'±àÂë
-    const buffer = encoder.encode(data);
-    const fixedArray = new Uint8Array(len);
-    fixedArray.set(buffer);
-    fixedArray.fill(0, buffer.length);
-    return fixedArray.buffer;
-}
-function array_cat(a1,a2){
-    var tlen=a1.byteLength+a2.byteLength;
-    var buffer = new ArrayBuffer(tlen);
-    var vw = new Uint8Array(buffer);
-    
-    var vw1 = new Uint8Array(a1);
-    for(var i=0; i<a1.byteLength; i++) {
-        vw[i] = vw1[i];
-    }
-    
-    var vw2 = new Uint8Array(a2);
-    for(var i=0; i<a2.byteLength; i++) {
-        vw[i+a1.byteLength] = vw2[i];
-    }
-    return buffer;
-}
-function mk_hdr(type,flag)
-{
-    var tmp,length=0;
-    var buffer = new ArrayBuffer(13);
-
-    tmp = new DataView(buffer, length);
-    var t = MAGIC;
-    tmp.setUint16(0,t,true);//magic
-    length += 2;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,type,true);  //type
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,0,true);     //subtype
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,0,true);     //nack
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint32(0,flag,true);     //flag
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint32(0,0,true);    //dlen
-    length += 4;
-    
-    return buffer;
-}
-function pkt_to_bin(type,subtype,js)
-{
-    var tmp,tmp2,length=0;
-    var buffer = new ArrayBuffer(13);
-
-    tmp = new DataView(buffer, length);
-    var t = MAGIC;
-    tmp.setUint16(0,t,true);//magic
-    length += 2;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,type,true);  //type
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,subtype,true);     //subtype
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,0,true);     //nack
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint32(0,0,true);     //flag
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint32(0,js.len,true);    //dlen
-    length += 4;
-    
-    switch(type){
-        case PKT_TYPE.PKT_TYPE_POWER_CH:
-            tmp2 = new powerc_to_bin(js);
-            break;
-
-        case PKT_TYPE.PKT_TYPE_POWER_TOTAL:
-            tmp2 = BIN.powert.j2b(js);
-            break;
-           
-       case PKT_TYPE.PKT_TYPE_ALARM:
-            tmp2 = BIN.alarm.j2b(js);
-            break;
-            
-       default:
-       return tmp2;
-    }
-    return array_cat(buffer,tmp2);
-}
-function bin_to_pkt(bin)
-{
-    var hdr = new bin_to_hdr(bin);
-    
-    var data = bin.slice(hdr.len);
-    if(data.byteLength>0 && hdr.dlen==data.byteLength) {
-        switch(hdr.type) {
-            case PKT_TYPE.PKT_TYPE_POWER_CH:
-                hdr.powerc = new bin_to_powerc(data);
-                break;
-
-            case PKT_TYPE.PKT_TYPE_POWER_TOTAL:
-                hdr.powert = BIN.powert.b2j(data);
-                break;
-               
-           case PKT_TYPE.PKT_TYPE_ALARM:
-                hdr.alarmd = BIN.alarmd.b2j(data);
-                break;
-            
-            default :
-                console.log("wrong hdr type: "+hdr.type);
-        }
-    }
-    return hdr;
-}
-
-///////////////////////////////////////////////////
-function bin_to_hdr(bin) {
-    var tmp, length=0;
-
-    tmp = new DataView(bin, length);
-    this.magic = tmp.getUint16(0,true);
-    length += 2;
-
-    tmp = new DataView(bin, length);
-    this.type = tmp.getUint8(0,true);
-    length += 1;
-    
-    tmp = new DataView(bin, length);
-    this.subtype = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.nack = tmp.getUint8(0,true);
-    length += 1;
-    
-    tmp = new DataView(bin, length);
-    this.flag = tmp.getUint8(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.dlen = tmp.getUint32(0,true);
-    length += 4;
-
-    this.len = length;
-}
-function bin_to_info(bin) {
-    var tmp, length=0;
-
-    this.name = array_to_string(bin.slice(0,32));
-    length += 32;
-
-    tmp = new DataView(bin, length);
-    this.type = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.addr = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.ch = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.sch = tmp.getUint8(0,true);
-    length += 1;
-    
-    tmp = new DataView(bin, length);
-    this.ph_id = tmp.getUint8(0,true);
-    length += 1;
-    
-    tmp = new DataView(bin, length);
-    this.ph_val = tmp.getUint8(0,true);
-    length += 1;
-    
-    tmp = new DataView(bin, length);
-    this.start_delay = tmp.getUint32(0,true);
-    length += 4;
-    
-    tmp = new DataView(bin, length);
-    this.stop_delay = tmp.getUint32(0,true);
-    length += 4;
-
-    this.len = length;
-}
-function bin_to_power(bin) {
-    var tmp, length=0;
-
-    tmp = new DataView(bin, length);
-    this.voltage = tmp.getFloat32(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.current = tmp.getFloat32(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.power = tmp.getFloat32(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.freq = tmp.getFloat32(0,true);
-    length += 4;
-    
-    tmp = new DataView(bin, length);
-    this.factor = tmp.getFloat32(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.consump = tmp.getFloat32(0,true);
-    length += 4;
-    
-    tmp = new DataView(bin, length);
-    this.active = tmp.getFloat32(0,true);
-    length += 4;
-    
-    tmp = new DataView(bin, length);
-    this.reactive = tmp.getFloat32(0,true);
-    length += 4;
-    
-    tmp = new DataView(bin, length);
-    this.ph_out = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.status = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.nwire = tmp.getUint8(0,true);
-    length += 1;
-
-    this.len = length;
-}
-function bin_to_alarm(bin) {
-    var tmp, length=0;
-
-    tmp = new DataView(bin, length);
-    this.v_upper = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.v_lower = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.c_upper = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.p_upper = tmp.getUint8(0,true);
-    length += 1;
-    
-    tmp = new DataView(bin, length);
-    this.w_upper = tmp.getUint8(0,true);
-    length += 1;
-    
-    tmp = new DataView(bin, length);
-    this.ph_loss = tmp.getUint8(0,true);
-    length += 1;
-
-    this.len = length;
-}
-function bin_to_thrval(bin) {
-    var tmp, length=0;
-    
-    tmp = new DataView(bin, length);
-    this.en = tmp.getUint8(0,true);
-    length += 1;
-
-    tmp = new DataView(bin, length);
-    this.val = tmp.getFloat32(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.act = tmp.getUint8(0,true);
-    length += 1;
-
-    this.act_para = [];
-    tmp = new DataView(bin, length);
-    for(var i=0; i<14; i++) {
-        this.act_para[i] = tmp.getUint8(i,true);
-    }
-    length += 14;
-
-    this.len = length;
-}
-function bin_to_thr(bin) {
-    var tmp, length=0;
-    
-    this.v_upper = new bin_to_thrval(bin.slice(length));
-    length += this.v_upper.len;
-    
-    this.v_lower = new bin_to_thrval(bin.slice(length));
-    length += this.v_lower.len;
-    
-    this.c_upper = new bin_to_thrval(bin.slice(length));
-    length += this.c_upper.len;
-    
-    this.p_upper = new bin_to_thrval(bin.slice(length));
-    length += this.p_upper.len;
-    
-    this.w_upper = new bin_to_thrval(bin.slice(length));
-    length += this.w_upper.len;
-
-    this.len = length;
-}
-function bin_to_powerc(bin) {
-    var tmp, bin2, length=0;
-
-    this.info = new bin_to_info(bin);
-    length += this.info.len;
-    
-    this.power = [];
-    for(var i=0; i<3; i++) {
-        this.power[i] = new bin_to_power(bin.slice(length));
-        length += this.power[i].len;
-    }
-    
-    this.thr = new bin_to_thr(bin.slice(length));
-    length += this.thr.len;
-    
-    this.alarm = new bin_to_alarm(bin.slice(length));
-    length += this.alarm.len;
-    
-    tmp = new DataView(bin, length);
-    this.time = tmp.getUint32(0,true);
-    length += 4;
-    
-    tmp = new DataView(bin, length);
-    this.pbrd = tmp.getUint32(0,true);
-    length += 4;
-
-    this.len = length;
-}
-function bin_to_total(bin) {
-    var tmp, length=0;
-
-    tmp = new DataView(bin, length);
-    this.voltage = tmp.getFloat32 (0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.current = tmp.getFloat32(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.power = tmp.getFloat32(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.freq = tmp.getFloat32(0,true);
-    length += 4;
-    
-    tmp = new DataView(bin, length);
-    this.consump = tmp.getFloat32 (0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.active = tmp.getFloat32(0,true);
-    length += 4;
-
-    tmp = new DataView(bin, length);
-    this.reactive = tmp.getFloat32(0,true);
-    length += 4;
-    
-    this.len = length;
-}
-function bin_to_powert(bin) {
-    var tmp, length=0;
-
-    tmp = new DataView(bin, length);
-    this.type = tmp.getUint8(0,true);
-    length += 1;
-
-    this.total = [];
-    for(var i=0; i<3; i++) {
-        this.total[i] = new bin_to_total(bin.slice(length));
-        length += this.total[i].len;
-    }
-    
-    this.len = length;
-}
-function bin_to_alarmd(bin) {
-    var tmp, length=0;
-    
-    tmp = new DataView(bin, length);
-    this.ch = tmp.getUint8(0,true);
-    length += 1;
-    
-    this.alarm = new bin_to_alarm(bin.slice(length));
-    length += this.alarm.len;
-    
-    tmp = new DataView(bin, length);
-    this.time = tmp.getUint32(0,true);
-    length += 1;
-
-    this.len = length;
-}
-///////////////////////////////////////////////////
-function hdr_to_bin(js) {
-    var tmp, length=0;
-    var buffer = new ArrayBuffer(js.len);
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint16(0,js.magic,true);
-    length += 2;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.type,true);
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.subtype,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.nack,true);
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint32(0,js.flag,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint32(0,js.dlen,true);
-    length += 4;
-
-    return buffer;
-}
-function info_to_bin(js) {
-    var tmp, length=0;
-    var buffer = new ArrayBuffer(js.len);
-
-    var name = string_to_array(js.name);
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.type,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.addr,true);
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.ch,true);
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.sch,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.ph_id,true);
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.ph_val,true);
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint32(0,js.start_delay,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint32(0,js.stop_delay,true);
-    length += 4;
-
-    return array_cat(name,buffer);
-}
-function power_to_bin(js) {
-    var tmp, length=0;
-    var buffer = new ArrayBuffer(js.len);
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.voltage,true);
-    length += 4;
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.current,true);
-    length += 4;
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.power,true);
-    length += 4;
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.freq,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.factor,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.consump,true);
-    length += 4;
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.active,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.reactive,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.ph_put,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.status,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.nwire,true);
-    length += 1;
-
-    return buffer;
-}
-function alarm_to_bin(js) {
-    var tmp, length=0;
-    var buffer = new ArrayBuffer(js.len);
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.v_upper,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.v_lower,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.c_upper,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.p_upper,true);
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.w_upper,true);
-    length += 1;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.ph_loss,true);
-    length += 1;
-
-    return buffer;
-}
-function thrval_to_js(js) {
-    var tmp, length=0;
-    var buffer = new ArrayBuffer(js.len);
-    
-    tmp = new DataView(buffer, length);
-    tmp.setUint8(0,js.en,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.val,true);
-    length += 4;
-
-    tmp = new DataView(buffer, length);
-    tmp.getUint8(0,js.act,true);
-    length += 1;
-
-    tmp = new DataView(buffer, length);
-    for(var i=0; i<14; i++) {
-        tmp.setUint8(i,js.act_para[i],true);
-    }
-    length += 14;
-
-    return buffer;
-}
-function thr_to_bin(js) {
-    var bin,tmp, length=0;
-    
-    bin = thrval_to_js(js.v_upper);
-    tmp = thrval_to_js(js.v_lower);
-    
-    bin = array_cat(bin, tmp);
-    tmp = thrval_to_js(js.c_upper);
-    bin = array_cat(bin, tmp);
-    
-    tmp = thrval_to_js(js.p_upper);
-    bin = array_cat(bin, tmp);
-    
-    tmp = thrval_to_js(js.w_upper);
-    bin = array_cat(bin, tmp);
-
-    return bin;
-}
-function powerc_to_bin(js) {
-    var bin,tmp, length=0;
-    
-    bin = info_to_bin(js.info);
-    
-    for(var i=0; i<3; i++) {
-        tmp = power_to_bin(js.power[i]);
-        bin = array_cat(bin, tmp);
-    }
-    
-    tmp = thr_to_bin(js.thr);
-    bin = array_cat(bin, tmp);
-
-    tmp = alarm_to_bin(js.alarm);
-    bin = array_cat(bin, tmp);
-    
-    var buf = new ArrayBuffer(8);
-    tmp = new DataView(buf, 0);
-    tmp.setUint32(0,js.time,true);
-    tmp.setUint32(4,js.pbrd,true);
-    
-    bin = array_cat(bin, buf);
-
-    return bin;
-}
-function total_to_bin(js) {
-    var tmp, length=0;
-    var buffer = new ArrayBuffer(js.len);
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.voltage,true);
-    length += 4;
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.current,true);
-    length += 4;
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.power,true);
-    length += 4;
-
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.freq,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.consump,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.factor,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.active,true);
-    length += 4;
-    
-    tmp = new DataView(buffer, length);
-    tmp.setFloat32(0,js.reactive,true);
-    length += 4;
-
-    return buffer;
-}
-function powert_to_bin(js) {
-    var tmp,bin2,length=0;
-    var bin = new ArrayBuffer(1);
-
-    tmp = new DataView(bin, length);
-    tmp.setUint8(0,js.type,true);
-    length += 4;
-
-    for(var i=0; i<3; i++) {
-        bin2 = total_to_bin(js.total[i]);
-        bin = array_cat(bin, bin2);
-    }
-
-    return bin;
-}
-function alarmd_to_bin(js) {
-    var tmp, length=0;
-    var bin,buffer = new ArrayBuffer(1);
-
-    tmp = new DataView(buffer, 0);
-    tmp.setUint8(0,js.ch,true);
-    
-    var alarm = alarm_to_bin(js.alarm);
-    bin = array_cat(buffer, alarm);
-
-    buffer = new ArrayBuffer(4);
-    tmp = new DataView(buffer, 0);
-    tmp.setUint32(0,js.time,true);
-
-    return array_cat(bin, buffer);
-}
-//////////////////////////////////////////////////////////////
-
-var XXX ={};
-XXX.hdr = function() {
-    this.j2b = function (js) {
-        var tmp;
-
-        switch(js.type){
-            case PKT_TYPE.PKT_TYPE_POWER_CH:
-                tmp = BIN.powerc.j2b(js.powerc);
-                break;
-
-            case PKT_TYPE.PKT_TYPE_POWER_TOTAL:
-                tmp = BIN.powert.j2b(js.powert);
-                break;
-               
-           case PKT_TYPE.PKT_TYPE_ALARM:
-                tmp = BIN.alarm.j2b(js.alarmd);
-                break;
-                
-           default:
-           return tmp;
-        }
-        js.dlen = tmp.byteLength;
-        var hdr = new hdr_to_bin(js);
-        return array_cat(hdr,tmp);
-    };
-
-    this.b2j = function (bin) {
-        var tmp;
-        var hdr = new bin_to_hdr(bin);
-        
-        if(hdr.nack == 1){
-            //tmp = myBinary.ack.bin2js(bin,this.hdr.len,true);
-            //myLog('log',tmp);
-            //var data = tmp.data;
-        }
-        
-        var data = bin.slice(hdr.len);
-        if(data.byteLength>0 && hdr.dlen==data.byteLength) {
-            switch(hdr.type) {
-                case PKT_TYPE.PKT_TYPE_POWER_CH:
-                    hdr.powerc = BIN.powerc.b2j(data);
-                    break;
-
-                case PKT_TYPE.PKT_TYPE_POWER_TOTAL:
-                    hdr.powert = BIN.powert.b2j(data);
-                    break;
-                   
-               case PKT_TYPE.PKT_TYPE_ALARM:
-                    hdr.alarmd = BIN.alarmd.b2j(data);
-                    break;
-                
-                default :
-                    console.log("wrong hdr type: "+hdr.type);
-            }
-        }
-        return hdr;
-    }
-};
-XXX.paras=function() {
-    this.j2b = function (js) {
-        
-    }
-    
-    this.b2j = function (bin) {
-        
-    }
-};
-XXX.powerc=function() {
-    this.j2b = function (js) {
-        return new powerc_to_bin(js);
-    }
-
-    this.b2j = function (bin) {
-        var tmp=[],length=0;
-        for(var i=0;; i++) {
-            tmp[i] =  new bin_to_powerc(bin.slice(length));
-            length += tmp[i].len;
-            if(length >= bin.byteLength) {
-                break;
-            }
-        }
-        return tmp;
-    }
-};
-XXX.powert=function() {
-    this.j2b = function (js) {
-        return new powert_to_bin(js);
-    }
-
-    this.b2j = function (bin) {
-        return new bin_to_powert(bin);
-    }
-};
-XXX.alarmd=function() {
-    this.j2b = function (js) {
-        return new alarmd_to_bin(js);
-    }
-
-    this.b2j = function (bin) {
-        return new bin_to_alarmd(bin);
-    }
-};
-
-
-var BIN=new function() {
-    this.hdr = new XXX.hdr();
-    this.paras = new XXX.paras();
-    this.powerc = new XXX.powerc();
-    this.powert = new XXX.powert();
-    this.alarmd = new XXX.alarmd();
-}();
-
-
-//////////////////////////////////////////
-function LOG(){
-    var data = [];
-    for(var i= 1,len=arguments.length;i<len;i++){
-        data.push(arguments[i])
-    }
-    console.log(data);
-
-}
-
-
-function WS(url,fn) {
-    this.url = url;
-    this.name = 'myWebs';
-    this.open = _open;
-    this.reopen = _reopen;
-    this.close = _close;
-    this.send = _send;
-    this.state = _state;
-    this.setcb = _setcb;
-    this.closeCount = 0;
-    this.maxConnect = 100;
-    var his = this;
-    this.open();
-    function _open() {
-        console.log("____url: ", his.url);
-        his.ws = new WebSocket(his.url);
-        his.ws.binaryType = 'arraybuffer';
-        his.ws.onopen = _onopen;
-        his.ws.onclose = _onclose;
-        his.ws.onmessage = _onmsg;
-        his.ws.onerror = _onerror;
-    }
-
-    function _reopen() {
-        _close();
-        _open(his.url);
-    }
-
-    function _close() {
-        his.ws.close();
-    }
-
-    function _send(msg) {
-        if (his.ws.readyState != WebSocket.OPEN)
-            return;
-        his.ws.send(msg);
-    }
-
-    function _state() {
-        return his.ws.readyState;
-    }
-
-    function _setcb(tp, f) {
-        switch (tp) {
-            case "open":
-                his.ws.onopen = f;
-                break;
-
-            case "close":
-                his.ws.onclose = f;
-                break;
-
-            case "msg":
-                his.ws.onmessage = f;
-                break;
-
-            case "err":
-                his.ws.onerror = f;
-                break;
-        }
-    }
-
-    function loop_send() {
-        console.log("PKT_TYPE_POWER_CH request");
-        _send(mk_hdr(PKT_TYPE.PKT_TYPE_POWER_CH));
-        setTimeout(loop_send, 2000);
-    }
-
-
-    function _onopen(evt) {
-        his.closeCount = 0;
-        console.log("___ ws.onopen");
-        setTimeout(loop_send, 2000);
-    }
-
-    function _onclose(evt) {
-        LOG("ws.onclose");
-        setTimeout(_reopen, 3000);
-        his.closeCount += 1;
-    }
-
-    function _onmsg(evt) {
-        console.log("___ ws.onmsg");
-        if (evt.data instanceof ArrayBuffer) {
-            fn(evt.data);
-        }
-    }
-
-    function _onerror(evt) {
-        console.log("___ ws.onerror");
-        //write_scr('<span style="color: red;">ERROR:</span> '+ evt.data);
-    }
-
-}
-
-