Espruino/libs/js/ATSMS.min.js
Gordon Williams 529fb0779e Bangle.js: setUI now has a 'redraw' argument to allow apps to provide a way to redraw themselves
Also fixes for scroller.isActive (and redraw checks) that break if there is a back icon
2023-06-20 11:00:23 +01:00

4 lines
1.7 KiB
JavaScript

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