input_machine.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
  7. <meta name="apple-mobile-web-app-capable" content="yes">
  8. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  9. <base href="//s.iamberry.com/watero/">
  10. <link rel="stylesheet" type="text/css" href="//s.iamberry.com/watero/css/mui.min.css">
  11. <link rel="stylesheet" type="text/css" href="//s.iamberry.com/watero/css/iconfont.css" />
  12. <link rel="stylesheet" type="text/css" href="//s.iamberry.com/watero/css/style.css" />
  13. <style>
  14. .my-select {-webkit-appearance: menulist;border:1px solid #ccc !important;}
  15. .box{width:100%;text-align: center;}
  16. .box .left_tab{display: inline-block;width:45%;margin-right: 4%;}
  17. .box .right_tab{display: inline-block;width:45%;margin-left: 4%;}
  18. .mui-btn-block{padding: 10px 0;}
  19. </style>
  20. </head>
  21. <body style="background: #fff;">
  22. <div class="loading-bg">
  23. <div class="mui-loading">
  24. <div class="mui-spinner">
  25. </div>
  26. &nbsp;&nbsp;加载中...
  27. </div>
  28. </div>
  29. <div class="mui-content" style="background: #fff;">
  30. <div class="mui-content-padded">
  31. <input type="text" id="mac-input" class="mui-text-center" placeholder="请输入蓝牙MAC地址 :不需要" />
  32. <br/>
  33. <button type="button" id="confirm-mac-btn" class="mui-btn mui-btn-block mui-btn-blue" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="确认中...">确认蓝牙MAC</button>
  34. <div class="box">
  35. <div class="left_tab"><button type="button" id="conn-dev-btn" class="mui-btn mui-btn-block mui-btn-blue" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="连接中...">连接机器</button></div>
  36. <div class="right_tab"><button type="button" id="dis-dev-btn" class="mui-btn mui-btn-block mui-btn-blue" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="断开中...">断开连接</button></div>
  37. </div>
  38. <div class="box">
  39. <div class="left_tab"><select class="my-select" id="init-year-input"><option value="1">1年</option><option value="2">2年</option><option value="3">3年</option></select></div>
  40. <div class="right_tab"><button type="button" id="init-dev-btn" class="mui-btn mui-btn-block mui-btn-blue" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="激活中...">激活机器</button></div>
  41. </div>
  42. <div class="box" style="display: none;">
  43. <div class="left_tab"><select class="my-select"><option>1年</option><option>2年</option><option>3年</option></select></div>
  44. <div class="right_tab"><button type="button" class="mui-btn mui-btn-block mui-btn-blue" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="续费中...">续费</button></div>
  45. </div>
  46. <div class="box">
  47. <div class="left_tab"><input type="text" id="tds-input" value="TDS" style="width: 45%;" readonly="readonly"/><input type="text" id="water-input" value="水量" style="width: 45%;float: right;" readonly="readonly"/></div>
  48. <div class="right_tab"><button type="button" id="get-data-btn" class="mui-btn mui-btn-block mui-btn-blue" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="获取中...">获取水量、TDS</button></div>
  49. </div>
  50. <div class="box">
  51. <div class="left_tab" id="state-div">
  52. <span class="iconfont icon-lvxin_full"></span><span class="iconfont icon-lvxin_full"></span><span class="iconfont icon-lvxin_full"></span><span class="iconfont icon-lvxin_null"></span>
  53. </div>
  54. <div class="right_tab"><button type="button" id="get-state-btn" class="mui-btn mui-btn-block mui-btn-blue" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="获取中...">获取滤芯状态</button></div>
  55. </div>
  56. </div>
  57. </div>
  58. <script type="text/javascript" src="js/mui.min.js"></script>
  59. <script type="text/javascript" src="js/jquery-2.1.1.min.js"></script>
  60. <script type="text/javascript" src="//s.iamberry.com/watero/js/wechat_iot.js"></script>
  61. <script type="text/javascript">
  62. mui.ready(function(){
  63. console.log("页面加载完毕")
  64. document.querySelector('.loading-bg').style.display='none';
  65. });
  66. // 全局flag:是否允许请求
  67. var isRequest = false;
  68. var deviceId = null;
  69. // 确认MAC
  70. $(function () {
  71. // 确认MAC
  72. $("#confirm-mac-btn").click(function () {
  73. // 校验数据
  74. var mac = $("#mac-input").val();
  75. if (mac == null || mac == "") {
  76. mui.alert("请检查MAC是否为空");
  77. return;
  78. }
  79. // 处理 :
  80. if (mac.indexOf(":") != -1) {
  81. var replaceStr = ":";
  82. mac = mac.replace(new RegExp(replaceStr,'gm'),'').toLowerCase();
  83. }
  84. // 发起请求
  85. var url = "//w.iamberry.com/watero/wechat/factory/info_by_mac";
  86. $.post(url,{"mac":mac},function(result){
  87. if (result.resultCode != 200 || result.returnCode != 200) {
  88. mui.alert("没有查找到机器,请检查");
  89. return;
  90. }
  91. // 允许请求
  92. isRequest = true;
  93. // 保存deviceid
  94. deviceId = result.returnMsg.info.machineDeviceId;
  95. mui.alert("已检测到机器,请确认机器在线,然后开始测试...");
  96. });
  97. });
  98. // 连接请求
  99. $("#conn-dev-btn").click(function () {
  100. if (!isRequest) {
  101. mui.alert("请先输入mac地址 然后测试...");
  102. return;
  103. }
  104. wx.invoke('getWXDeviceTicket', {'deviceId':deviceId,'type':'1', 'connType':'blue'}, function(res) {
  105. if (res.err_msg == "getWXDeviceTicket:ok") {
  106. var ticket = res.ticket;
  107. var url = "//w.iamberry.com/watero/wechat/factory/bind";
  108. $.post(url,{"ticket":ticket, "device_id":deviceId},function(result){
  109. if (result.resultCode != 200 || result.returnCode != 200) {
  110. mui.alert("绑定失败,请检查");
  111. return;
  112. }
  113. });
  114. }
  115. });
  116. });
  117. // 断开连接
  118. $("#dis-dev-btn").click(function () {
  119. if (!isRequest) {
  120. mui.alert("请先输入mac地址 然后测试...");
  121. return;
  122. }
  123. wx.invoke('getWXDeviceTicket', {'deviceId':deviceId,'type':'2', 'connType':'blue'}, function(res) {
  124. if (res.err_msg == "getWXDeviceTicket:ok") {
  125. var ticket = res.ticket;
  126. var url = "//w.iamberry.com/watero/wechat/factory/un_bind";
  127. $.post(url,{"ticket":ticket, "device_id":deviceId},function(result){
  128. if (result.resultCode != 200 || result.returnCode != 200) {
  129. mui.alert("解除绑定失败,请检查");
  130. return;
  131. }
  132. });
  133. }
  134. });
  135. });
  136. // 激活机器
  137. $("#init-dev-btn").click(function () {
  138. if (!isRequest) {
  139. mui.alert("请先输入mac地址 然后测试...");
  140. return;
  141. }
  142. // 发送
  143. sendMsgToDevice(deviceId, base64encode("*setDir2#"), function(state, res){
  144. if (state == 200) {
  145. var hour = parseInt($("#init-year-input").val()) * 365 * 24;
  146. hour = append(hour);
  147. var water = 2500 * parseInt($("#init-year-input").val());
  148. water = append(water);
  149. sendMsgToDevice(deviceId, base64encode("*setData" + hour + " " + water + "#"), function(code, data){
  150. receiveData(function(temp) {
  151. var t = base64decode(temp);
  152. if (t == "ok1") {
  153. mui.alert("激活成功...");
  154. } else {
  155. mui.alert("激活失败...");
  156. }
  157. });
  158. // 改变数据方向
  159. sendMsgToDevice(deviceId, base64encode("*setDir0#"), function(){});
  160. });
  161. }
  162. });
  163. });
  164. // 获取数据
  165. $("#get-data-btn").click(function () {
  166. if (!isRequest) {
  167. mui.alert("请先输入mac地址 然后测试...");
  168. return;
  169. }
  170. sendMsgAndReceiveData(deviceId, "*getData#", function(state, data){
  171. if (state == 200) {
  172. var temp = data.split(" ");
  173. $("#tds-input").val(temp[0]);
  174. $("#water-input").val(temp[1]);
  175. } else {
  176. mui.alert("获取失败,请重试!");
  177. }
  178. });
  179. });
  180. // 获取滤芯状态
  181. $("#get-state-btn").click(function(){
  182. if (!isRequest) {
  183. mui.alert("请先输入mac地址 然后测试...");
  184. return;
  185. }
  186. sendMsgAndReceiveData(deviceId, "*isUse#", function(state, data){
  187. if (state == 200) {
  188. var t = data.split("");
  189. // 先清空
  190. $("#state-div").html("");
  191. for (var i = 0; i < t.length; i++) {
  192. if (t[i] == "0") {
  193. // 不可用
  194. $("#state-div").append("<span class='iconfont icon-lvxin_null'></span>");
  195. } else {
  196. $("#state-div").append("<span class='iconfont icon-lvxin_full'></span>");
  197. }
  198. }
  199. } else {
  200. mui.alert("获取失败,请重试!");
  201. }
  202. });
  203. });
  204. });
  205. // 填充参数
  206. function append(hour) {
  207. var temp = hour + "";
  208. if (hour.length == 5) {
  209. return temp;
  210. }
  211. return append("0" + hour);
  212. }
  213. </script>
  214. </body>
  215. </html>