1 |
- "use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_WJService=require("./WJService.js"),_WJService2=_interopRequireDefault(_WJService),_WJUtils=require("./WJUtils.js"),_WJUtils2=_interopRequireDefault(_WJUtils),_WJDataDecode=require("./WJDataDecode.js"),_WJDataDecode2=_interopRequireDefault(_WJDataDecode);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var TAG_FUNCTION="function",sendCallback=void 0,TimerID=null;function _StartSendData(a,e){var l={},r=0,i=0;null!=TimerID&&(clearTimeout(TimerID),TimerID=null),_WJDataDecode2.default.init(),TimerID=setTimeout(pro_timeout,1e4),_WJUtils2.default.showLog(TimerID,"开启时钟"),sendCallback=e,_WJService2.default.SetDataListenerCallBack(!0,datacallback),function t(){var e="";40*i>=a[r].length&&(r++,i=0);r<a.length&&(e=a[r].length>=40*(i+1)?a[r].substring(40*i,40*(i+1)):a[r].substring(40*i,a[r].length));""==e?_WJUtils2.default.showLog("数据发送完毕!"):(_WJUtils2.default.showLog("发送数据:",e),_WJService2.default.reallyWriteBLECharacteristicValue(e,function(e){0==e.code?(i++,t()):(_WJUtils2.default.showError(TimerID,"数据发送失败,取消时钟"),null!=TimerID&&(clearTimeout(TimerID),TimerID=null),_WJService2.default.SetDataListenerCallBack(!1),l.serviceCode=-2,l.serviceInfo="数据发送失败",(void 0===sendCallback?"undefined":_typeof(sendCallback))==TAG_FUNCTION&&sendCallback(l))}))}()}function datacallback(e){_WJService2.default.SetDataListenerCallBack(!0,datacallback),_ReceiveData(e)}function pro_timeout(){var e={};_WJUtils2.default.showError(TimerID,"数据接收超时,取消时钟"),null!=TimerID&&(clearTimeout(TimerID),TimerID=null),_WJService2.default.SetDataListenerCallBack(!1),e.serviceCode=-3,e.serviceInfo="数据接收超时",(void 0===sendCallback?"undefined":_typeof(sendCallback))==TAG_FUNCTION&&sendCallback(e)}function _ReceiveData(e){for(var t=_WJUtils2.default.hexStr2byteArray(e),e=new ArrayBuffer(t.byteLength),a=new DataView(e),l=0;l<t.byteLength;l++)a.setUint8(l,t[l]);var r,i={},o=_WJUtils2.default.getProtocolType();0==o?r=_WJDataDecode2.default.decode_GB(e):1==o&&(r=_WJDataDecode2.default.decode_WX(e)),0==r.serviceCode&&(null!=(o=PackageDecode(r.serviceData.strData))?(_WJUtils2.default.showLog(TimerID,"接收数据成功,取消时钟"),null!=TimerID&&(clearTimeout(TimerID),TimerID=null),_WJService2.default.SetDataListenerCallBack(!1),i.serviceCode=0,i.serviceInfo="数据接收成功",i.serviceData={},i.serviceData.dataBuff=o):(_WJUtils2.default.showError(TimerID,"数据解析失败,取消时钟"),null!=TimerID&&(clearTimeout(TimerID),TimerID=null),_WJService2.default.SetDataListenerCallBack(!1),i.serviceCode=-1,i.serviceInfo="数据解析失败"),(void 0===sendCallback?"undefined":_typeof(sendCallback))==TAG_FUNCTION)&&sendCallback(i)}function PackageDecode(e){var t=_WJUtils2.default.getDATA_TYPE(),a=_WJUtils2.default.hexStr2byteArray(e),l=0,r=a[1],i=a[0];if(_WJUtils2.default.showLog("WJPackageDecode:",e),0!=r)return _WJUtils2.default.showError("WJ结果码非00"),null;switch(i){case 146:case 176:case 179:case 180:case 188:return 0==t?(u=7,129==a[5]&&(129==a[6]?(l=255&a[7],u+=1):130==a[6]?(l=a[7]<<8,l+=255&a[8],u+=2):l=255&a[6]),u=a.slice(u,l+u),s=_WJUtils2.default.byteArray2hexStr(u)):1==t&&(u=a.slice(5),s=_WJUtils2.default.APDU2TPDU(_WJUtils2.default.byteArray2hexStr(u))),_WJUtils2.default.showLog("WJ有效数据长度:",s.length/2,s),_WJUtils2.default.showLog("操作类型ok",i),s;case 185:return 0==t?(s=e,console.log("解析数据",e)):1==t&&(u=a.slice(5),s=_WJUtils2.default.APDU2TPDU(_WJUtils2.default.byteArray2hexStr(u))),_WJUtils2.default.showLog("WJ有效数据长度:",s.length/2,s),_WJUtils2.default.showLog("操作类型ok",i),s;case 145:case 151:case 148:case 144:var o=(255&a[3])<<8,s=(o+=a[2],u=a.slice(4,o+4),_WJUtils2.default.byteArray2hexStr(u));return _WJUtils2.default.showLog("WJ有效数据长度:",o,_WJUtils2.default.byteArray2hexStr(u)),_WJUtils2.default.showLog("操作类型ok",i),s;case 181:var o=a[2],u=a.slice(3,o+3);return _WJUtils2.default.showLog("WJ有效数据长度:",o,_WJUtils2.default.byteArray2hexStr(u)),_WJUtils2.default.showLog("操作类型ok",i),_WJUtils2.default.byteArray2hexStr(u);default:return _WJUtils2.default.showError("WJ通道类型有误"),null}}module.exports={_StartSendData:_StartSendData,_ReceiveData:_ReceiveData};
|