Updated included JS libraries

This commit is contained in:
Gordon Williams 2019-03-13 14:44:34 +00:00
parent 43660e2c4e
commit a7e92e7066
9 changed files with 34 additions and 33 deletions

View File

@ -1,4 +1,4 @@
function c(a,e){var d=this;this.serial=a;this.at=require("AT").connect(a);this.at.registerLine('+CMTI: "SM",',function(a){d.emit("message",a.substr(12));return""})}function g(a){if(0!=(a.length&3))return a;for(var e="",d=0;d<a.length;d+=4){var b=parseInt(a.substr(d,4),16);if(isNaN(b))return a;e+=String.fromCharCode(b)}return e}c.prototype.init=function(a){var e=this.at;this.at.cmd("ATE0\r\n",3E3,function k(b){if("ATE0"==b)return k;"OK"!=b&&a("ATE0 ERROR "+b);e.cmd("AT+CMGF=1\r\n",1E3,
function(b){a&&a("OK"==b?null:"CMGF ERROR "+b)})})};c.prototype.send=function(a,e,d){var b=this.at;b.register(">",function(){b.unregister(">");b.write(e+"\u001a\r");return""});b.cmd('AT+CMGS="'+a+'"\r\n',1E4,function f(a){b.unregister(">");if(a&&"+CMGS"==a.substr(0,5))return f;d&&d("OK"==a?null:"CMGS ERROR "+a)})};c.prototype.list=function(a,e){var d=[],b;this.at.cmd('AT+CMGL="'+a+'"\r\n',1E4,function f(a){if(void 0!==b&&void 0!==a)return b.text=g(a),b=void 0,f;if(a&&"+CMGL: "==a.substr(0,7)){try{var c=
JSON.parse("["+a.substr(7)+"]");b={index:c[0],isRead:"REC READ"==c[1],oaddr:c[2],oname:c[3],time:c[4],text:""};d.push(b)}catch(m){}return f}e&&e("OK"==a?null:"CMGL ERROR "+a,d)})};c.prototype.get=function(a,e){var d;this.at.cmd("AT+CMGR="+a+"\r\n",1E4,function h(a){if("OK"==a)return e(null,d);if(void 0!==d&&void 0!==a&&"OK"!=a)return d.text=g(a),h;if(a&&"+CMGR: "==a.substr(0,7)){try{var c=JSON.parse("["+a.substr(7)+"]");d={isRead:"REC READ"==c[0],oaddr:c[1],oname:c[2],time:c[3],text:""}}catch(l){}return h}e&&
e("OK"==a?null:"CMGR ERROR "+a,list)})};c.prototype["delete"]=function(a,c){"ALL"==a&&(a="1,4");this.at.cmd("AT+CMGD="+a+"\r\n",1E3,function(a){c&&c("OK"==a?null:"CMGD ERROR "+a)})};exports=c
function d(a){var b=this;this.serial=a;this.at=require("AT").connect(a);this.at.registerLine('+CMTI: "SM",',function(a){b.emit("message",a.substr(12));return""})}function g(a){if(0!=(a.length&3))return a;for(var b="",e=0;e<a.length;e+=4){var c=parseInt(a.substr(e,4),16);if(isNaN(c))return a;b+=String.fromCharCode(c)}return b}d.prototype.init=function(a){var b=this.at;this.at.cmd("ATE0\r\n",3E3,function k(c){if("ATE0"==c)return k;"OK"!=c&&a("ATE0 ERROR "+c);b.cmd("AT+CMGF=1\r\n",1E3,function(b){a&&
a("OK"==b?null:"CMGF ERROR "+b)})})};d.prototype.send=function(a,b,e){var c=this.at;c.register(">",function(){c.unregister(">");c.write(b+"\u001a\r");return""});c.cmd('AT+CMGS="'+a+'"\r\n',1E4,function f(a){c.unregister(">");if(a&&"+CMGS"==a.substr(0,5))return f;e&&e("OK"==a?null:"CMGS ERROR "+a)})};d.prototype.list=function(a,b){var e=[],c;this.at.cmd('AT+CMGL="'+a+'"\r\n',1E4,function f(a){if(void 0!==c&&void 0!==a)return c.text=g(a),c=void 0,f;if(a&&"+CMGL: "==a.substr(0,7)){try{var d=JSON.parse("["+
a.substr(7)+"]");c={index:d[0],isRead:"REC READ"==d[1],oaddr:d[2],oname:d[3],time:d[4],text:""};e.push(c)}catch(m){}return f}b&&b("OK"==a?null:"CMGL ERROR "+a,e)})};d.prototype.get=function(a,b){var e;this.at.cmd("AT+CMGR="+a+"\r\n",1E4,function h(a){if("OK"==a)return b(null,e);if(void 0!==e&&void 0!==a&&"OK"!=a)return e.text=g(a),h;if(a&&"+CMGR: "==a.substr(0,7)){try{var d=JSON.parse("["+a.substr(7)+"]");e={isRead:"REC READ"==d[0],oaddr:d[1],oname:d[2],time:d[3],text:""}}catch(l){}return h}b&&b("OK"==
a?null:"CMGR ERROR "+a,list)})};d.prototype["delete"]=function(a,b){"ALL"==a&&(a="1,4");this.at.cmd("AT+CMGD="+a+"\r\n",1E3,function(a){b&&b("OK"==a?null:"CMGD ERROR "+a)})};exports=d

View File

@ -1,4 +1,4 @@
function f(a,b,c){this.read=b;this.write=c;this.write(242,1);this.write(244,39);this.write(245,160);this.readCoefficients()}function d(a,b){var c=(a[b+1]<<8)+a[b];c&32768&&(c-=65536);return c}f.prototype.setPower=function(a){this.read(244,1)};f.prototype.readCoefficients=function(){var a=new Uint8Array(32);a.set(this.read(136,24),0);a.set(this.read(161,1),24);a.set(this.read(225,7),25);this.dT=[,a[1]<<8|a[0],d(a,2),d(a,4)];this.dP=[,a[7]<<8|a[6],d(a,8),d(a,10),d(a,12),d(a,14),d(a,16),
d(a,18),d(a,20),d(a,22)];this.dH=[,a[24],d(a,25),a[27],a[28]<<4|15&a[29],a[30]<<4|a[29]>>4&15,a[31]]};f.prototype.readRawData=function(){var a=this.read(247,8);this.pres_raw=a[0]<<12|a[1]<<4|a[2]>>4;this.temp_raw=a[3]<<12|a[4]<<4|a[5]>>4;this.hum_raw=a[6]<<8|a[7]};f.prototype.calibration_T=function(a){var b,c=this.dT;b=(a/16384-c[1]/1024)*c[2];a=(a/131072-c[1]/8192)*(a/131072-c[1]/8192)*c[3];this.t_fine=b+a;return(b+a)/5120*100};f.prototype.calibration_P=function(a){var b,c,e=this.dP;b=this.t_fine/
2-64E3;c=b*b*e[6]/32768;c+=b*e[5]*2;c=c/4+65536*e[4];b=(e[3]*b*b/524288+e[2]*b)/524288;b=(1+b/32768)*e[1];if(0===b)return 0;a=6250*(1048576-a-c/4096)/b;b=e[9]*a*a/2147483648;c=a*e[8]/32768;return a+=(b+c+e[7])/16};f.prototype.calibration_H=function(a){var b,c=this.dH;b=this.t_fine-76800;b=((a<<14)-(c[4]<<20)-c[5]*b+16384>>15)*((((b*c[6]>>10)*((b*c[3]>>11)+32768)>>10)+2097152)*c[2]+8192>>14);b-=((b>>15)*(b>>15)>>7)*c[1]>>4;b=Math.clip(b,0,419430400);return b>>12};f.prototype.getData=function(a){this.readRawData();
return{temp:this.calibration_T(this.temp_raw)/100,pressure:this.calibration_P(this.pres_raw)/100,humidity:this.calibration_H(this.hum_raw)/1024}};exports.connect=function(a,b){return new f(b,function(b,e){a.writeTo(118,b);return a.readFrom(118,e)},function(b,e){a.writeTo(118,[b,e])})};exports.connectSPI=function(a,b,c){return new f(c,function(c,d){new Uint8Array(d+1);return a.send([c|128,new Uint8Array(d)],b).slice(1)},function(c,d){a.write(c&127,d,b)})}
function e(a,c,b){this.read=c;this.write=b;this.write(242,1);this.write(244,39);this.write(245,160);this.readCoefficients()}function d(a,c){var b=(a[c+1]<<8)+a[c];b&32768&&(b-=65536);return b}e.prototype.setPower=function(a){var c=this.read(244,1)[0];this.write(244,a?c|3:c&-4)};e.prototype.readCoefficients=function(){var a=new Uint8Array(32);a.set(this.read(136,24),0);a.set(this.read(161,1),24);a.set(this.read(225,7),25);this.dT=[,a[1]<<8|a[0],d(a,2),d(a,4)];this.dP=[,a[7]<<8|a[6],d(a,
8),d(a,10),d(a,12),d(a,14),d(a,16),d(a,18),d(a,20),d(a,22)];this.dH=[,a[24],d(a,25),a[27],a[28]<<4|15&a[29],a[30]<<4|a[29]>>4&15,a[31]]};e.prototype.readRawData=function(){var a=this.read(247,8);this.pres_raw=a[0]<<12|a[1]<<4|a[2]>>4;this.temp_raw=a[3]<<12|a[4]<<4|a[5]>>4;this.hum_raw=a[6]<<8|a[7]};e.prototype.calibration_T=function(a){var c=this.dT;var b=(a/16384-c[1]/1024)*c[2];a=(a/131072-c[1]/8192)*(a/131072-c[1]/8192)*c[3];this.t_fine=b+a;return(b+a)/5120*100};e.prototype.calibration_P=function(a){var c=
this.dP;var b=this.t_fine/2-64E3;var f=b*b*c[6]/32768;f+=b*c[5]*2;f=f/4+65536*c[4];b=(c[3]*b*b/524288+c[2]*b)/524288;b=(1+b/32768)*c[1];if(0===b)return 0;a=6250*(1048576-a-f/4096)/b;b=c[9]*a*a/2147483648;f=a*c[8]/32768;return a+=(b+f+c[7])/16};e.prototype.calibration_H=function(a){var c=this.dH;var b=this.t_fine-76800;b=((a<<14)-(c[4]<<20)-c[5]*b+16384>>15)*((((b*c[6]>>10)*((b*c[3]>>11)+32768)>>10)+2097152)*c[2]+8192>>14);b-=((b>>15)*(b>>15)>>7)*c[1]>>4;b=E.clip(b,0,419430400);return b>>12};e.prototype.getData=
function(){this.readRawData();return{temp:this.calibration_T(this.temp_raw)/100,pressure:this.calibration_P(this.pres_raw)/100,humidity:this.calibration_H(this.hum_raw)/1024}};exports.connect=function(a,c){return new e(c,function(b,c){a.writeTo(118,b);return a.readFrom(118,c)},function(b,c){a.writeTo(118,[b,c])})};exports.connectSPI=function(a,c,b){return new e(b,function(b,d){return a.send([b|128,new Uint8Array(d)],c).slice(1)},function(b,d){a.write(b&127,d,c)})}

View File

@ -1,5 +1,5 @@
function d(c,b){this.i2c=c;this.options=b||{};this.w(a.CTRL_REG1_ADDRESS,a.PD_ACTIVE_MODE|a.BDU_NOT_CONTINUOUS_UPDATE|a.ODR_ONE_HZ);this.w(a.CTRL_AV_CONF,a.AVGT_DEFAULT);var e=this.r(50,2),d=e[0];e=e[1];var f=this.r(53,1)[0]&15;this.T0_degC=(256*(f&3)+d)/8;this.T1_degC=(64*(f&12)+e)/8;this.T0_OUT=this.r16(60,!0);this.T1_OUT=this.r16(62,!0);e=this.r(48,2);this.H0_RH=e[0]/2;this.H1_RH=e[1]/2;this.H0_T0_OUT=this.r16(54,!0);this.H1_T0_OUT=this.r16(58,!0);this.options["int"]&&(this.w(a.CTRL_REG3_ADDRESS,
4),this.watch=setWatch(function(){this.emit("data",this.get())}.bind(this),this.options["int"],{edge:"rising",repeat:!0}),this.get())}var a={HTS221_I2C_SLAVE_ADDRESS:95,CTRL_WHO_AM_I_ADDRESS:15,CTRL_AV_CONF:16,CTRL_REG1_ADDRESS:32,CTRL_REG3_ADDRESS:34,CTRL_STATUS_ADDRESS:39,PD_ACTIVE_MODE:128,PD_POWER_DOWN_MODE:0,BDU_CONTINUOUS_UPDATE:0,BDU_NOT_CONTINUOUS_UPDATE:4,ODR_ONE_SHOT:0,ODR_ONE_HZ:1,ODR_SEVEN_HZ:2,ODR_TWELVE_DOT_FIVE_HZ:3,AVGT_DEFAULT:27,DATA_HUMIDITY_OUT_L:40,DATA_HUMIDITY_OUT_H:41,DATA_TEMP_OUT_L:42,
DATA_TEMP_OUT_H:43};exports.connect=function(c,b){return new d(c,b)};d.prototype.stop=function(){this.watch&&clearWatch(this.watch);this.watch=void 0;this.w(a.CTRL_REG1_ADDRESS,a.PD_POWER_DOWN_MODE)};d.prototype.ObtainCalibratedTemperatureCoefficient=function(){print("ObtainCalibratedTemperatureCoefficient deprecated. It's now done automatically.")};d.prototype.getTemperature=function(c){var b=this.r16(a.DATA_TEMP_OUT_L,!0);b=(this.T1_degC-this.T0_degC)*(b-this.T0_OUT)/(this.T1_OUT-this.T0_OUT)+this.T0_degC;
c&&c(b);return b};d.prototype.getHumidity=function(c){var b=this.r16(a.DATA_HUMIDITY_OUT_L,!0);b=(this.H1_RH-this.H0_RH)*(b-this.H0_T0_OUT)/(this.H1_T0_OUT-this.H0_T0_OUT)+this.H0_RH;c&&c(b);return b};d.prototype.get=function(){return{temperature:this.getTemperature(),humidity:this.getHumidity()}};d.prototype.read=function(c){if(this.options["int"])c(this.get());else{var b=setInterval(function(){this.r(a.CTRL_STATUS_ADDRESS)&3&&(clearInterval(b),c(get()))}.bind(this),100);return this.get()}};d.prototype.r=
function(c,b){this.i2c.writeTo({address:a.HTS221_I2C_SLAVE_ADDRESS,stop:!1},128|c);return this.i2c.readFrom(a.HTS221_I2C_SLAVE_ADDRESS,b)};d.prototype.r16=function(c,b){var a=this.r(c,2);a=a[1]<<8|a[0];b&&a&32768&&(a-=65536);return a};d.prototype.w=function(c,b){this.i2c.writeTo(a.HTS221_I2C_SLAVE_ADDRESS,c,b)}
c&&c(b);return b};d.prototype.getHumidity=function(c){var b=this.r16(a.DATA_HUMIDITY_OUT_L,!0);b=(this.H1_RH-this.H0_RH)*(b-this.H0_T0_OUT)/(this.H1_T0_OUT-this.H0_T0_OUT)+this.H0_RH;c&&c(b);return b};d.prototype.get=function(){return{temperature:this.getTemperature(),humidity:this.getHumidity()}};d.prototype.read=function(c){if(this.options["int"])c(this.get());else{var b=setInterval(function(){this.r(a.CTRL_STATUS_ADDRESS)&3&&(clearInterval(b),c(this.get()))}.bind(this),100);return this.get()}};
d.prototype.r=function(c,b){this.i2c.writeTo({address:a.HTS221_I2C_SLAVE_ADDRESS,stop:!1},128|c);return this.i2c.readFrom(a.HTS221_I2C_SLAVE_ADDRESS,b)};d.prototype.r16=function(c,b){var a=this.r(c,2);a=a[1]<<8|a[0];b&&a&32768&&(a-=65536);return a};d.prototype.w=function(c,b){this.i2c.writeTo(a.HTS221_I2C_SLAVE_ADDRESS,c,b)}

View File

@ -1,3 +1,3 @@
function e(a,b,d){this.r=a;this.w=b;this.options=d||{};if(177!=this.r(c.WHO_AM_I,1)[0])throw"LPS22HB WHO_AM_I check failed";this.w(c.CTRL_REG1,0);this.w(c.CTRL_REG2,16);this.options["int"]&&(this.watch=setWatch(function(){this.emit("data",this.get())}.bind(this),this.options["int"],{edge:"rising",repeat:!0}),this.get(),this.w(c.CTRL_REG1,16),this.w(c.CTRL_REG3,4))}var c={WHO_AM_I:15,CTRL_REG1:16,CTRL_REG2:17,CTRL_REG3:18,STATUS:39,PRESS_OUT_XL:40,TEMP_OUT_L:43};e.prototype.stop=function(){this.watch&&
(clearWatch(this.watch),this.watch=void 0);this.w(c.CTRL_REG1,0);this.w(c.CTRL_REG3,0)};e.prototype.get=function(){var a=this.r(c.STATUS,6),b=a[3]<<16|a[2]<<8|a[1];b&8388608&&(b-=16777216);var d=a[5]<<8|a[4];d&32768&&(d-=65536);return{pressure:b/4096,temperature:d/100,"new":3==(a[0]&3)}};e.prototype.read=function(a){if(this.options["int"])a(this.get());else{this.w(c.CTRL_REG2,17);var b=setInterval(function(){this.r(c.STATUS)&3&&(clearInterval(b),a(get()))}.bind(this),100);return this.get()}};exports.connectI2C=
function(a,b){var c=b&&b.addr||92;return new e(function(b,d){a.writeTo(c,b|128);return a.readFrom(c,d)},function(b,d){a.writeTo(c,b,d)},b)}
(clearWatch(this.watch),this.watch=void 0);this.w(c.CTRL_REG1,0);this.w(c.CTRL_REG3,0)};e.prototype.get=function(){var a=this.r(c.STATUS,6),b=a[3]<<16|a[2]<<8|a[1];b&8388608&&(b-=16777216);var d=a[5]<<8|a[4];d&32768&&(d-=65536);return{pressure:b/4096,temperature:d/100,"new":3==(a[0]&3)}};e.prototype.read=function(a){if(this.options["int"])a(this.get());else{this.w(c.CTRL_REG2,17);var b=setInterval(function(){this.r(c.STATUS)&3&&(clearInterval(b),a(this.get()))}.bind(this),100);return this.get()}};
exports.connectI2C=function(a,b){var c=b&&b.addr||92;return new e(function(b,d){a.writeTo(c,b|128);return a.readFrom(c,d)},function(b,d){a.writeTo(c,b,d)},b)}

View File

@ -1,4 +1,4 @@
function c(a,b,d,e,c){this.r=a;this.w=b;this.rmag=d;this.wmag=e;this.Gscale=this.Ascale=0;this.gyrosensitivity=131;this.accelsensitivity=16384;this.samplerate=200}c.prototype.calibrateMPU9250=function(){return new Promise(function(a){a("calibrateMPU9250 not working at the moment")})};c.prototype.initMPU9250=function(){if(113!=this.r(117,1)[0])throw"MPU9250 WHO_AM_I check failed";var a=this;return(new Promise(function(b){a.w(107,0);setTimeout(b,100)})).then(function(){a.w(107,1);return new Promise(function(a){setTimeout(a,
200)})}).then(function(){a.w(26,3);a.w(25,Math.clip(Math.round(1E3/a.samplerate)-1,0,255));var b=a.r(27,1)[0];b=b&-27|a.Gscale<<3;a.w(27,b);b=a.r(28,1)[0];b=b&-25|a.Ascale<<3;a.w(28,b);b=a.r(29,1)[0];a.w(29,b&-16|3);a.w(55,34);a.w(56,1);a.wmag(10,18);return new Promise(function(a){setTimeout(a,100)})})};c.prototype.dataReady=function(){return this.r(58,1)&1};c.prototype.readAccel=function(){var a=new DataView((new Uint8Array(this.r(59,6))).buffer);return{x:a.getInt16(0,0)/this.accelsensitivity,y:a.getInt16(2,
0)/this.accelsensitivity,z:a.getInt16(4,0)/this.accelsensitivity}};c.prototype.readGyro=function(){var a=new DataView((new Uint8Array(this.r(67,6))).buffer);return{x:a.getInt16(0,0)/this.gyrosensitivity,y:a.getInt16(2,0)/this.gyrosensitivity,z:a.getInt16(4,0)/this.gyrosensitivity}};c.prototype.readMag=function(){var a=new DataView((new Uint8Array(this.rmag(3,7))).buffer),b=49120/32760;return{x:a.getInt16(0,1)*b,y:a.getInt16(2,1)*b,z:a.getInt16(4,1)*b}};c.prototype.read=function(){return{accel:this.readAccel(),
gyro:this.readGyro(),mag:this.readMag(),"new":this.dataReady()}};exports.connectI2C=function(a,b){return new c(function(b,c){a.writeTo(104,b);return a.readFrom(104,c)},function(b,c){a.writeTo(104,b,c)},function(b,c){a.writeTo(12,b);return a.readFrom(12,c)},function(b,c){a.writeTo(12,b,c)},b)}
function d(a,b,e,c){this.r=a;this.w=b;this.rmag=e;this.wmag=c;this.Gscale=this.Ascale=0;this.gyrosensitivity=131;this.accelsensitivity=16384;this.samplerate=200}d.prototype.calibrateMPU9250=function(){return new Promise(function(a){a("calibrateMPU9250 not working at the moment")})};d.prototype.initMPU9250=function(){if(113!=this.r(117,1)[0])throw"MPU9250 WHO_AM_I check failed";var a=this;return(new Promise(function(b){a.w(107,0);setTimeout(b,100)})).then(function(){a.w(107,1);return new Promise(function(a){setTimeout(a,
200)})}).then(function(){a.w(26,3);a.w(25,E.clip(Math.round(1E3/a.samplerate)-1,0,255));var b=a.r(27,1)[0];b=b&-27|a.Gscale<<3;a.w(27,b);b=a.r(28,1)[0];b=b&-25|a.Ascale<<3;a.w(28,b);b=a.r(29,1)[0];a.w(29,b&-16|3);a.w(55,34);a.w(56,1);a.wmag(10,18);return new Promise(function(a){setTimeout(a,100)})})};d.prototype.dataReady=function(){return this.r(58,1)&1};d.prototype.readAccel=function(){var a=new DataView((new Uint8Array(this.r(59,6))).buffer);return{x:a.getInt16(0,0)/this.accelsensitivity,y:a.getInt16(2,
0)/this.accelsensitivity,z:a.getInt16(4,0)/this.accelsensitivity}};d.prototype.readGyro=function(){var a=new DataView((new Uint8Array(this.r(67,6))).buffer);return{x:a.getInt16(0,0)/this.gyrosensitivity,y:a.getInt16(2,0)/this.gyrosensitivity,z:a.getInt16(4,0)/this.gyrosensitivity}};d.prototype.readMag=function(){var a=new DataView((new Uint8Array(this.rmag(3,7))).buffer),b=49120/32760;return{x:a.getInt16(0,1)*b,y:a.getInt16(2,1)*b,z:a.getInt16(4,1)*b}};d.prototype.read=function(){return{accel:this.readAccel(),
gyro:this.readGyro(),mag:this.readMag(),"new":this.dataReady()}};exports.connectI2C=function(a,b){return new d(function(b,c){a.writeTo(104,b);return a.readFrom(104,c)},function(b,c){a.writeTo(104,b,c)},function(b,c){a.writeTo(12,b);return a.readFrom(12,c)},function(b,c){a.writeTo(12,b,c)},b)}

View File

@ -1,6 +1,7 @@
function l(){}function h(a,b){return new Promise(function(c,f){var m="";d.cmd(a+"\r\n",b||1E3,function p(b){if(void 0===b||"ERROR"==b)f(a+": "+b?b:"TIMEOUT");else if("OK"==b)c(m);else return m+=(m?"\n":"")+b,p})})}var d,g=[],e=" ".split(" "),k=!1,q={create:function(a,b){var c=0;if(void 0===a)return l("Server not implemented"),-1;for(;void 0!==g[c];)c++;if(6<=c)throw Error("No free sockets.");g[c]="Wait";e[c]="";k=!0;d.cmd("AT+QIOPEN=1,"+c+',"TCP",'+JSON.stringify(a)+","+b+",0,1\r\n",
1E4,function(a){"OK"!=a&&(g[c]=void 0,k=!1)});return c},close:function(a){void 0!==g[a]&&(e[a]="",d.cmd("AT+QICLOSE="+a+"\r\n",1E3,function(){g[a]=void 0}))},accept:function(a){return-1},recv:function(a,b){if(e[a]){if(e[a].length>b){var c=e[a].substr(0,b);e[a]=e[a].substr(b)}else c=e[a],e[a]="";return c}return g[a]?"":-1},send:function(a,b){if(k||d.isBusy()||"Wait"==g[a])return 0;if(!g[a])return-1;k=!0;d.cmd("AT+QISEND="+a+","+b.length+"\r\n",1E4,function m(f){l("AT+QISEND response "+JSON.stringify(f));
if("OK"==f)return d.register("> ",function(a){d.unregister("> ");d.write(b);return a.substr(2)}),m;"SEND OK"==f?k=!1:(d.unregister("> "),g[a]=null)});return b.length}},n={debug:function(a){l=a||void 0===a?function(a){print("[BG96]",a)}:function(){};return{socks:g,sockData:e,busy:k}},getVersion:function(a){h("AT+GMR").then(function(b){a(null,b)})["catch"](function(b){a(b)})},getIP:function(a){var b;d.cmd("AT+QISTATE=0,1\r\n",1E3,function(c){"OK"==c?a(null,b):c.startsWith("+QISTATE")?b=c.split(",")[2]:
a(null,c)})}};exports.connect=function(a,b,c){b=b||{};a.removeAllListeners();n.at=d=require("AT").connect(a);require("NetworkJS").create(q);d.register('+QIURC: "recv"',function(a){var b=a.indexOf("\r\n");if(0>b)return a;var f=a.split(",");a=a.substr(b+2);e[0|f[1]]+=a;l(f);d.getData((0|f[2])-a.length,function(a){e[0|f[1]]+=a});return""});d.registerLine('+QIURC: "closed"',function(a){g[0|a.substr(17)]=null;k=!1});d.registerLine("+QIOPEN: ",function(a){a=a.substr(9).split(",");g[0|a[0]]=0==a[1]?!0:void 0;
k=!1});d.registerLine("+CME ERROR",function(a){console.log(a)});h("ATE0").then(function(){return h("AT+CEREG=2")}).then(function(){return new Promise(function(a,c){var f=60,e=setInterval(function(){d.cmd(b.lte?"AT+CEREG?\r":"AT+CREG?\r",500,function(b){b=b.split(",")[1];if(1==b||5==b)clearInterval(e),a()});0>=f--&&(clearInterval(e),c("Timeout while registering."))},1E3)})}).then(function(a){return h("AT+CGATT=1",1E4)}).then(function(){return h("AT+CGREG?")}).then(function(a){var b=a.split(",")[1];
if(2==b)throw Error("GPRS still connecting, "+a);if(1!=b&&5!=b)throw Error("GPRS not registered, "+a);return h("AT+COPS?")}).then(function(a){var c=a.split(",")[2];if(!c)throw Error("No Operator, "+a);l("Operator "+c);return h("AT+QICSGP=1,1,"+JSON.stringify(b.apn||"")+","+JSON.stringify(b.username||"")+","+JSON.stringify(b.password||""),6E4)}).then(function(){return h("AT+QIACT=1",6E4)}).then(function(){c&&c(null)})["catch"](function(a){c&&c(a)});return n}
function l(){}function h(a,b){return new Promise(function(c,g){var m="";e.cmd(a+"\r\n",b||1E3,function p(b){if(void 0===b||"ERROR"==b)g(a+": "+b?b:"TIMEOUT");else if("OK"==b)c(m);else return m+=(m?"\n":"")+b,p})})}var e,d=[],f=" ".split(" "),k=!1,q={create:function(a,b){var c=0;if(void 0===a)return l("Server not implemented"),-1;for(;void 0!==d[c];)c++;if(6<=c)throw Error("No free sockets.");d[c]="Wait";f[c]="";k=!0;e.cmd("AT+QIOPEN=1,"+c+',"TCP",'+JSON.stringify(a)+","+b+",0,1\r\n",
1E4,function(a){"OK"!=a&&(d[c]=void 0,k=!1)});return c},close:function(a){void 0!==d[a]&&(f[a]="",e.cmd("AT+QICLOSE="+a+"\r\n",1E3,function(){d[a]=void 0}))},accept:function(){return-1},recv:function(a,b){if(f[a]){if(f[a].length>b){var c=f[a].substr(0,b);f[a]=f[a].substr(b)}else c=f[a],f[a]="","DataClose"==d[a]&&(l("Got DataClose - forcing close"),d[a]="closing");return c}return"closing"!=d[a]&&d[a]?"":-1},send:function(a,b){if(k||e.isBusy()||"Wait"==d[a])return 0;if("closing"==d[a]||!d[a])return-1;
k=!0;e.register("> ",function(a){l("AT+QISEND got prompt");e.unregister("> ");e.write(b);return a.substr(2)});e.cmd("AT+QISEND="+a+","+b.length+"\r\n",1E4,function m(g){l("AT+QISEND response "+JSON.stringify(g));if(""==g)return m;e.unregister("> ");k=!1;"SEND OK"!=g&&(d[a]=null)});return b.length}},n={debug:function(a){l=a||void 0===a?function(a){print("[BG96]",a)}:function(){};return{socks:d,sockData:f,busy:k}},getVersion:function(a){h("AT+GMR").then(function(b){a(null,b)})["catch"](function(b){a(b)})},
getIP:function(a){var b;e.cmd("AT+QISTATE=0,1\r\n",1E3,function(c){"OK"==c?a(null,b):c.startsWith("+QISTATE")?b=c.split(",")[2]:a(null,c)})}};exports.connect=function(a,b,c){b=b||{};a.removeAllListeners();n.at=e=require("AT").connect(a);require("NetworkJS").create(q);e.register('+QIURC: "recv"',function(a){var b=a.indexOf("\r\n");if(0>b)return a;var g=a.substr(0,b).split(","),c=0|g[1],d=0|g[2];a=a.substr(b+2);f[c]+=a;l(g);e.getData(d-a.length,function(a){f[c]+=a});return""});e.registerLine('+QIURC: "closed"',
function(a){a=0|a.substr(17);d[a]=f[a]?"DataClose":"closing";k=!1});e.registerLine("+QIOPEN: ",function(a){a=a.substr(9).split(",");0!=a[1]?console.log("QIOPEN ERROR "+a[1]):d[0|a[0]]=!0;k=!1});e.registerLine("+CME ERROR",function(a){console.log(a)});h("ATE0").then(function(){return h("AT+CEREG=2")}).then(function(){return new Promise(function(a,c){var g=60,d=setInterval(function(){e.cmd(b.lte?"AT+CEREG?\r":"AT+CREG?\r",500,function(b){b=b.split(",")[1];if(1==b||5==b)clearInterval(d),a()});0>=g--&&
(clearInterval(d),c("Timeout while registering."))},1E3)})}).then(function(){return h("AT+CGATT=1",1E4)}).then(function(){return h("AT+CGREG?")}).then(function(a){var b=a.split(",")[1];if(2==b)throw Error("GPRS still connecting, "+a);if(1!=b&&5!=b)throw Error("GPRS not registered, "+a);return h("AT+COPS?")}).then(function(a){var c=a.split(",")[2];if(!c)throw Error("No Operator, "+a);l("Operator "+c);return h("AT+QICSGP=1,1,"+JSON.stringify(b.apn||"")+","+JSON.stringify(b.username||"")+","+JSON.stringify(b.password||
""),6E4)}).then(function(){return h("AT+QIACT=1",6E4)}).then(function(){c&&c(null)})["catch"](function(a){c&&c(a)});return n}

View File

@ -1,6 +1,6 @@
function g(){}function p(a){var b=a.substring(10).split(",");g(b);d.getData(0|b[1],function(a){e[0|b[0]]+=a})}function q(a){g(a);var b=a[0];a=a.substr(3);"CONNECT OK"==a?c[b]=!0:"CONNECT FAIL"==a?c[b]=void 0:"CLOSED"==a?c[b]=void 0:"SEND OK"!=a&&"SEND FAIL"==a&&(c[b]=void 0);k=!1;return""}function h(a,b){return new Promise(function(c,f){var l="";d.cmd(a+"\r\n",b||1E3,function r(b){if(void 0===b||"ERROR"==b)f(a+": "+b?b:"TIMEOUT");else if("OK"==b)c(l);else return l+=(l?"\n":"")+b,r})})}
var d,c=[],e=" ".split(" "),k=!1,t={create:function(a,b){function m(a){d.cmd("AT+QIOPEN="+f+',"TCP",'+JSON.stringify(a)+","+b+"\r\n",1E4,function(a){"OK"!=a&&(c[f]=void 0,k=!1)})}var f=0;if(void 0===a)return g("Server not implemented"),-1;for(;void 0!==c[f];)f++;if(6<=f)throw Error("No free sockets.");c[f]="Wait";e[f]="";k=!0;a.match(/\d+.\d+.\d+.\d+/)?m(a):(g("Lookup host "+a),d.cmd("AT+QIDNSGIP="+JSON.stringify(a)+"\r\n",1E4,function(a){if("OK"==a)return function(a){m(a)};c[f]=void 0;k=!1;g("Host not found")}));
return f},close:function(a){c[a]&&d.cmd("AT+QICLOSE="+a+"\r\n",1E3,function(){c[a]=void 0})},accept:function(a){return-1},recv:function(a,b){if(e[a]){if(e[a].length>b){var d=e[a].substr(0,b);e[a]=e[a].substr(b)}else d=e[a],e[a]="";return d}return c[a]?"":-1},send:function(a,b){if(k||d.isBusy()||"Wait"==c[a])return 0;if(!c[a])return-1;k=!0;d.write("AT+QISEND="+a+","+b.length+"\r\n");setTimeout(function(){d.write(b)},1E3);return b.length}},n={debug:function(a){g=a||void 0===a?function(a){print("[M35]",
a)}:function(){};return{socks:c,sockData:e}},getVersion:function(a){h("AT+GMR").then(function(b){a(null,b)})["catch"](function(b){a(b)})},getIP:function(a){d.cmd("AT+QILOCIP\r\n",1E3,function(b){"ERROR"==b?a(b):a(null,b)})}};exports.connect=function(a,b,c){a.removeAllListeners();n.at=d=require("AT").connect(a);require("NetworkJS").create(t);d.registerLine("+RECEIVE",p);for(a=0;6>a;a++)d.registerLine(a+", ",q);d.registerLine("+CME ERROR",function(a){console.log(a)});h("ATE0").then(function(){return h("AT+CREG?")}).then(function(a){var b=
function p(a){var b=a.substring(10).split(",");g(b);d.getData(0|b[1],function(a){e[0|b[0]]+=a})}function q(a){g(a);var b=a[0];a=a.substr(3);"CONNECT OK"==a?c[b]=!0:"CONNECT FAIL"==a?c[b]=void 0:"CLOSED"==a?c[b]=void 0:"SEND OK"!=a&&"SEND FAIL"==a&&(c[b]=void 0);k=!1;return""}function h(a,b){return new Promise(function(c,f){var l="";d.cmd(a+"\r\n",b||1E3,function r(b){if(void 0===b||"ERROR"==b)f(a+": "+b?b:"TIMEOUT");else if("OK"==b)c(l);else return l+=(l?"\n":"")+b,r})})}var d,c=[],e=
" ".split(" "),k=!1,g=function(){},t={create:function(a,b){function m(a){d.cmd("AT+QIOPEN="+f+',"TCP",'+JSON.stringify(a)+","+b+"\r\n",1E4,function(a){"OK"!=a&&(c[f]=void 0,k=!1)})}var f=0;if(void 0===a)return g("Server not implemented"),-1;for(;void 0!==c[f];)f++;if(6<=f)throw Error("No free sockets.");c[f]="Wait";e[f]="";k=!0;a.match(/\d+.\d+.\d+.\d+/)?m(a):(g("Lookup host "+a),d.cmd("AT+QIDNSGIP="+JSON.stringify(a)+"\r\n",1E4,function(a){if("OK"==a)return function(a){m(a)};c[f]=void 0;k=!1;
g("Host not found")}));return f},close:function(a){c[a]&&d.cmd("AT+QICLOSE="+a+"\r\n",1E3,function(){c[a]=void 0})},accept:function(){return-1},recv:function(a,b){if(e[a]){if(e[a].length>b){var d=e[a].substr(0,b);e[a]=e[a].substr(b)}else d=e[a],e[a]="";return d}return c[a]?"":-1},send:function(a,b){if(k||d.isBusy()||"Wait"==c[a])return 0;if(!c[a])return-1;k=!0;d.write("AT+QISEND="+a+","+b.length+"\r\n");setTimeout(function(){d.write(b)},1E3);return b.length}},n={debug:function(a){g=a||void 0===a?
function(a){print("[M35]",a)}:function(){};return{socks:c,sockData:e}},getVersion:function(a){h("AT+GMR").then(function(b){a(null,b)})["catch"](function(b){a(b)})},getIP:function(a){d.cmd("AT+QILOCIP\r\n",1E3,function(b){"ERROR"==b?a(b):a(null,b)})}};exports.connect=function(a,b,c){a.removeAllListeners();n.at=d=require("AT").connect(a);require("NetworkJS").create(t);d.registerLine("+RECEIVE",p);for(a=0;6>a;a++)d.registerLine(a+", ",q);d.registerLine("+CME ERROR",function(a){console.log(a)});h("ATE0").then(function(){return h("AT+CREG?")}).then(function(a){var b=
a.split(",")[1];if(1!=b&&5!=b)throw Error("GSM not registered, "+a);g("Forcing GPRS connect");return h("AT+CGATT=1",1E4)}).then(function(){return h("AT+CGREG?")}).then(function(a){var b=a.split(",")[1];if(2==b)throw Error("GPRS still connecting, "+a);if(1!=b&&5!=b)throw Error("GPRS not registered, "+a);return h("AT+COPS?")}).then(function(a){var b=a.split(",")[2];if(!b)throw Error("No Operator, "+a);g("Operator "+b);return h("AT+QIMUX=1")}).then(function(){return h("AT+QIPROMPT=0")}).then(function(){c&&
c(null)})["catch"](function(a){c&&c(a)});return n}

View File

@ -1,15 +1,15 @@
function z(a){return{ip:a.charCodeAt(0)+"."+a.charCodeAt(1)+"."+a.charCodeAt(2)+"."+a.charCodeAt(3),port:a.charCodeAt(5)<<8|a.charCodeAt(4),len:a.charCodeAt(7)<<8|a.charCodeAt(6)}}function D(a){var b=a.indexOf(":");if(0>b)return a;var c=a.substring(5,b).split(",");c[1]|=0;var d=a.length-(b+1),e=c[0];if(v[e]){var l=(c[2]||"0.0.0.0").split(".").map(function(a){return 0|a}),A=0|c[3];g[e]+=String.fromCharCode(l[0],l[1],l[2],l[3],A&255,A>>8,d&255,d>>8)}if(d>=c[1])return g[e]+=a.substr(b+1,
c[1]),a.substr(b+c[1]+1);g[e]+=a.substr(b+1,d);f.getData(c[1]-d,function(a){g[e]+=a});return""}function w(a,b){if(b)return a(b);f.cmd("AT+CWMODE="+p+"\r\n",1E3,function(b){"no change"!=b&&"OK"!=b&&"WIFI DISCONNECT"!=b?a("CWMODE failed: "+(b?b:"Timeout")):a(null)})}function q(a){var b=a[0];void 0===e[b]&&e[5]?e[b]="Accept":"Wait"==e[b]?e[b]=!0:f.cmd("AT+CIPCLOSE="+b+"\r\n",1E3,function(a){e[b]=void 0})}function r(a){e[a[0]]=""!=g[a[0]]?"DataClose":void 0}function u(a,b){var c=0==p;p|=a;c?("1v91"==
process.version?(x.reset(),t.setup(115200,{rx:A3,tx:A2})):t.setup(115200,{rx:A3,tx:A2,cts:x}),f=require("AT").connect(t),f.register("+IPD",D),f.registerLine("0,CONNECT",q),f.registerLine("1,CONNECT",q),f.registerLine("2,CONNECT",q),f.registerLine("3,CONNECT",q),f.registerLine("4,CONNECT",q),f.registerLine("0,CLOSED",r),f.registerLine("1,CLOSED",r),f.registerLine("2,CLOSED",r),f.registerLine("3,CLOSED",r),f.registerLine("4,CLOSED",r),f.registerLine("WIFI CONNECTED",function(){n|=k.CLIENT;exports.emit("associated")}),
c[1]),a.substr(b+c[1]+1);g[e]+=a.substr(b+1,d);f.getData(c[1]-d,function(a){g[e]+=a});return""}function w(a,b){if(b)return a(b);f.cmd("AT+CWMODE="+p+"\r\n",1E3,function(b){"no change"!=b&&"OK"!=b&&"WIFI DISCONNECT"!=b?a("CWMODE failed: "+(b?b:"Timeout")):a(null)})}function q(a){var b=a[0];void 0===e[b]&&e[5]?e[b]="Accept":"Wait"==e[b]?e[b]=!0:f.cmd("AT+CIPCLOSE="+b+"\r\n",1E3,function(){e[b]=void 0})}function r(a){e[a[0]]=""!=g[a[0]]?"DataClose":void 0}function u(a,b){var c=0==p;p|=a;c?("1v91"==process.version?
(x.reset(),t.setup(115200,{rx:A3,tx:A2})):t.setup(115200,{rx:A3,tx:A2,cts:x}),f=require("AT").connect(t),f.register("+IPD",D),f.registerLine("0,CONNECT",q),f.registerLine("1,CONNECT",q),f.registerLine("2,CONNECT",q),f.registerLine("3,CONNECT",q),f.registerLine("4,CONNECT",q),f.registerLine("0,CLOSED",r),f.registerLine("1,CLOSED",r),f.registerLine("2,CLOSED",r),f.registerLine("3,CLOSED",r),f.registerLine("4,CLOSED",r),f.registerLine("WIFI CONNECTED",function(){n|=k.CLIENT;exports.emit("associated")}),
f.registerLine("WIFI GOT IP",function(){exports.emit("connected")}),f.registerLine("WIFI DISCONNECTED",function(){n&=~k.CLIENT;exports.emit("disconnected")}),exports.at=f,require("NetworkJS").create(B),f.cmd("\r\nAT+RST\r\n",1E4,function l(a){if("ready"==a||"Ready."==a)setTimeout(function(){f.cmd("ATE0\r\n",1E3,function F(a){if("ATE0"==a)return F;"OK"==a?f.cmd("AT+CIPDINFO=1\r\n",1E3,function(a){if("OK"!=a)return b("CIPDINFO failed: "+(a?a:"Timeout"));f.cmd("AT+CIPMUX=1\r\n",1E3,function(a){if("OK"!=
a)return b("CIPMUX failed: "+(a?a:"Timeout"));f.cmd("AT+UART_CUR=115200,8,1,0,2\r\n",500,function(a){if("OK"!=a)return b("UART_CUR failed: "+(a?a:"Timeout"));w(b)})})}):b("ATE0 failed: "+(a?a:"Timeout"))})},500);else if(void 0===a)b("No 'ready' after AT+RST");else return l}),digitalWrite(G,1),digitalWrite(y,1)):w(b)}function C(a,b){b=b||function(){};(p&=~a)?w(b,null):(t.removeAllListeners(),f=void 0,exports.at=void 0,digitalWrite(y,0),e=[],setTimeout(b,1))}var G=A13,y=A14,x=A15,t=Serial2;digitalWrite(y,
0);var k={CLIENT:1,AP:2},H=["open","wep","wpa_psk","wpa2_psk","wpa_wpa2_psk"],p=0,n=0,f,e=[],v=[],g=["","","","",""],B={create:function(a,b,c){if(!f||!n)return-1;if(void 0===a&&2!=c)return d=5,e[d]="Wait",g[d]="",f.cmd("AT+CIPSERVER=1,"+b+"\r\n",1E4,function(a){"OK"==a?e[d]=!0:(e[d]=void 0,setTimeout(function(){throw Error("CIPSERVER failed ("+(a?a:"Timeout")+")");},0))}),5;for(var d=0;void 0!==e[d];)d++;if(5<=d)return-7;g[d]="";e[d]="Wait";var h;2==c?(b?h="AT+CIPSTART="+d+',"UDP","255.255.255.255",'+
b+","+b+",2\r\n":e[d]="UDP",v[d]=!0):(h="AT+CIPSTART="+d+',"TCP",'+JSON.stringify(a)+","+b+"\r\n",delete v[d]);h&&f.cmd(h,1E4,function m(a){if("ALREADY CONNECTED"==a)return m;if("OK"!=a||!0!==e[d])e[d]=-6});return d},close:function(a){"Wait"==e[a]?e[a]="WaitClose":void 0!==e[a]&&(0>e[a]||"UDP"==e[a]?e[a]=void 0:f.cmd((5==a?"AT+CIPSERVER=0":"AT+CIPCLOSE="+a)+"\r\n",1E3,function(b){e[a]=void 0}))},accept:function(a){for(a=0;5>a;a++)if("Accept"==e[a])return e[a]=!0,a;return-1},recv:function(a,b,c){return g[a]?
(g[a].length>b?(c=g[a].substr(0,b),g[a]=g[a].substr(b)):(c=g[a],g[a]="","DataClose"==e[a]&&(e[a]=void 0)),c):0>e[a]?e[a]:e[a]?"":-1},send:function(a,b,c){if(!f)return-1;if(f.isBusy()||"Wait"==e[a])return 0;if(0>e[a])return e[a];if(!e[a])return-1;if("UDP"==e[a])return c=z(b),e[a]="Wait",f.cmd("AT+CIPSTART="+a+',"UDP","'+c.ip+'",'+c.port+","+c.port+",2\r\n",1E4,function(b){"OK"!=b&&(e[a]=-6)}),0;var d=b.length,h="";2==c&&(c=z(b),h=',"'+c.ip+'",'+c.port,b=b.substr(8,c.len),d=8+c.len);f.cmd("AT+CIPSEND="+
b+","+b+",2\r\n":e[d]="UDP",v[d]=!0):(h="AT+CIPSTART="+d+',"TCP",'+JSON.stringify(a)+","+b+"\r\n",delete v[d]);h&&f.cmd(h,1E4,function m(a){if("ALREADY CONNECTED"==a)return m;if("OK"!=a||!0!==e[d])e[d]=-6});return d},close:function(a){"Wait"==e[a]?e[a]="WaitClose":void 0!==e[a]&&(0>e[a]||"UDP"==e[a]?e[a]=void 0:f.cmd((5==a?"AT+CIPSERVER=0":"AT+CIPCLOSE="+a)+"\r\n",1E3,function(){e[a]=void 0}))},accept:function(){for(var a=0;5>a;a++)if("Accept"==e[a])return e[a]=!0,a;return-1},recv:function(a,b){if(g[a]){if(g[a].length>
b){var c=g[a].substr(0,b);g[a]=g[a].substr(b)}else c=g[a],g[a]="","DataClose"==e[a]&&(e[a]=void 0);return c}return 0>e[a]?e[a]:e[a]?"":-1},send:function(a,b,c){if(!f)return-1;if(f.isBusy()||"Wait"==e[a])return 0;if(0>e[a])return e[a];if(!e[a])return-1;if("UDP"==e[a])return c=z(b),e[a]="Wait",f.cmd("AT+CIPSTART="+a+',"UDP","'+c.ip+'",'+c.port+","+c.port+",2\r\n",1E4,function(b){"OK"!=b&&(e[a]=-6)}),0;var d=b.length,h="";2==c&&(c=z(b),h=',"'+c.ip+'",'+c.port,b=b.substr(8,c.len),d=8+c.len);f.cmd("AT+CIPSEND="+
a+","+b.length+h+"\r\n",2E3,function m(d){if("OK"==d)f.register("> ",function(a){f.unregister("> ");f.write(b);return a.substr(2)});else if(d!="Recv "+b.length+" bytes"&&"busy s..."!=d){"SEND OK"==d?("WaitClose"==e[a]&&B.close(a),e[a]=!0):(e[a]=void 0,f.unregister("> "));return}return m});e[a]="Wait";return d}};exports.connect=function(a,b,c){var d="";c=c||function(){};void 0!==b.password&&(d=b.password);u(k.CLIENT,function(b){if(b)return c(b);f.cmd("AT+CWJAP="+JSON.stringify(a)+","+JSON.stringify(d)+
"\r\n",2E4,function m(a){if(0<=["WIFI DISCONNECT","WIFI CONNECTED","WIFI GOT IP","+CWJAP:1"].indexOf(a))return m;"OK"!=a?setTimeout(c,0,"WiFi connect failed: "+(a?a:"Timeout")):setTimeout(c,0,null)})})};exports.disconnect=function(a){C(k.CLIENT,a)};exports.startAP=function(a,b,c){c=c||function(){};b=b||{};if(!b.password||8>b.password.length)throw Error("Password must be at least 8 characters");var d=b.password?"3":"0";if(b.authMode&&(d={open:0,wpa:2,wpa2:3,wpa_wpa2:4}[b.authMode],void 0===d))throw Error("Unknown authMode "+
b.authMode);void 0===b.channel&&(b.channel=5);u(k.AP,function(e){if(e)return c(e);f.cmd("AT+CWSAP="+JSON.stringify(a)+","+JSON.stringify(b.password)+","+b.channel+","+d+"\r\n",5E3,function(a){"OK"!=a?c("CWSAP failed: "+(a?a:"Timeout")):(n|=k.AP,c(null))})})};exports.stopAP=function(a){n&=~k.AP;C(k.AP,a)};exports.scan=function(a){var b=[];u(k.CLIENT,function(c){if(c)return a(c);f.cmdReg("AT+CWLAP\r\n",5E3,"+CWLAP:",function(a){a=a.slice(8,-1).split(",");b.push({ssid:JSON.parse(a[1]),authMode:H[a[0]],
rssi:parseInt(a[2]),mac:JSON.parse(a[3]),channel:JSON.parse(a[4])})},function(d){a(null,b)})})};exports.getIP=function(a){var b={};f.cmd("AT+CIFSR\r\n",1E3,function h(d){if(void 0===d)a("Timeout");else{if("+CIFSR:STAIP"==d.substr(0,12))b.ip=d.slice(14,-1);else if("+CIFSR:STAMAC"==d.substr(0,13))b.mac=d.slice(15,-1);else if("OK"==d){a(null,b);return}return h}})};exports.setIP=function(a,b){if("object"==typeof a&&a.ip){var c=[JSON.stringify(a.ip)];a.gw&&(c.push(JSON.stringify(a.gw)),c.push(JSON.stringify(a.netmask||
rssi:parseInt(a[2]),mac:JSON.parse(a[3]),channel:JSON.parse(a[4])})},function(){a(null,b)})})};exports.getIP=function(a){var b={};f.cmd("AT+CIFSR\r\n",1E3,function h(d){if(void 0===d)a("Timeout");else{if("+CIFSR:STAIP"==d.substr(0,12))b.ip=d.slice(14,-1);else if("+CIFSR:STAMAC"==d.substr(0,13))b.mac=d.slice(15,-1);else if("OK"==d){a(null,b);return}return h}})};exports.setIP=function(a,b){if("object"==typeof a&&a.ip){var c=[JSON.stringify(a.ip)];a.gw&&(c.push(JSON.stringify(a.gw)),c.push(JSON.stringify(a.netmask||
"255.255.255.0")));c="AT+CIPSTA_CUR="+c.join(",")+"\r\n";var d=3E3}else c="AT+CWDHCP_CUR=1,1\r\n",d=2E4;f.cmd(c,d,function(a){if("OK"==a)b(null);else return b("setIP failed: "+(a?a:"Timeout"))})};exports.getAPIP=function(a){var b={};f.cmd("AT+CIPAP_CUR?\r\n",1E3,function h(d){if(void 0===d)a("Timeout");else if("OK"==d)f.cmd("AT+CIPAPMAC_CUR?\r\n",1E3,function m(d){if(void 0===d)a("Timeout");else if("OK"==d)a(null,b);else return"+CIPAPMAC_CUR"==d.substr(0,14)&&(b.mac=JSON.parse(d.substr(10))),m});
else return"+CIPAP_CUR"==d.substr(0,10)&&(d=d.split(":"),"gateway"==d[1]&&"gw"==d[1],b[d[1]]=JSON.parse(d[2])),h})};exports.setAPIP=function(a,b){var c=[JSON.stringify(a.ip)];a.gw&&(c.push(JSON.stringify(a.gw)),c.push(JSON.stringify(a.netmask||"255.255.255.0")));f.cmd("AT+CIPAP_CUR="+c.join(",")+"\r\n",3E3,function(a){if("OK"==a)b(null);else return b("setAPIP failed: "+(a?a:"Timeout"))})};exports.setHostname=function(a,b){u(k.CLIENT,function(c){if(c)return b(c);f.cmd("AT+CWHOSTNAME="+JSON.stringify(a)+
"\r\n",500,function(a){b("OK"==a?null:a)})})};exports.ping=function(a,b){var c;f.cmd('AT+PING="'+a+'"\r\n',1E3,function l(a){if(a&&"+"==a[0])return c=a.substr(1),l;"OK"==a?b(c):b()})};exports.turbo=function(a,b){var c=a?!0===a?921600:a:115200;f.cmd("AT+UART_CUR="+c+",8,1,0,2\r\n",500,function(a){"OK"!=a?b&&b("Baud rate switch to "+c+" failed: "+(a?a:"Timeout")):(t.setup(c,{rx:A3,tx:A2,cts:x}),b&&b(null))})};exports.debug=function(){return{wifiMode:p,connected:n,socks:e,sockData:g}}

View File

@ -1,4 +1,4 @@
exports.list=function(a,m){var b=m[""],e=Object.keys(m);b&&e.splice(e.indexOf(""),1);b instanceof Object||(b={});void 0===b.selected&&(b.selected=0);b.fontHeight||(b.fontHeight=6);var k=0|b.x,n=b.x2||a.getWidth()-1,g=0|b.y,q=b.y2||a.getHeight()-1;b.title&&(g+=b.fontHeight+2);var d={draw:function(){a.clear();a.setColor(-1);a.setFontAlign(0,-1);b.predraw&&b.predraw(a);b.title&&(a.drawString(b.title,(k+n)/2,g-b.fontHeight-2),a.drawLine(k,g-2,n,g-2));for(var p=0|Math.min((q-g)/b.fontHeight,
e.length),c=E.clip(b.selected-(p>>1),0,e.length-p),h=g;p--;){var f=k;c==b.selected&&(a.fillRect(k,h,n,h+b.fontHeight-1),a.setColor(0),d.selectEdit&&(a.drawImage({width:12,height:5,buffer:" \u0007\x00\u00f9\u00f0\u000e\x00@",transparent:0},k,h),f+=15));a.setFontAlign(-1,-1);var l=e[c++];a.drawString(l,f,h);f=m[l];"object"==typeof f&&(a.setFontAlign(1,-1),l=f.value,a.drawString(f.format?f.format(l):l,n,h));a.setColor(-1);h+=b.fontHeight}a.setFontAlign(-1,-1);b.preflip&&b.preflip(a);a.flip&&a.flip()},
select:function(a){a=m[e[b.selected]];if("function"==typeof a)a(d);else if("object"==typeof a){if("number"==typeof a.value)d.selectEdit=d.selectEdit?void 0:a;else if("boolean"==typeof a.value&&(a.value=!a.value),a.onchange)a.onchange(a.value);d.draw()}},move:function(a){if(d.selectEdit){var c=d.selectEdit;c.value+=(a||1)*(c.step||1);void 0!==c.min&&c.value<c.min&&(c.value=c.min);void 0!==c.max&&c.value>c.max&&(c.value=c.max);if(c.onchange)c.onchange(c.value)}else b.selected=0|Math.clip(b.selected+
a,0,e.length-1);d.draw()}};d.draw();return d}
select:function(a){a=m[e[b.selected]];if("function"==typeof a)a(d);else if("object"==typeof a){if("number"==typeof a.value)d.selectEdit=d.selectEdit?void 0:a;else if("boolean"==typeof a.value&&(a.value=!a.value),a.onchange)a.onchange(a.value);d.draw()}},move:function(a){if(d.selectEdit){var c=d.selectEdit;c.value+=(a||1)*(c.step||1);void 0!==c.min&&c.value<c.min&&(c.value=c.min);void 0!==c.max&&c.value>c.max&&(c.value=c.max);if(c.onchange)c.onchange(c.value)}else b.selected=0|E.clip(b.selected+a,
0,e.length-1);d.draw()}};d.draw();return d}