dry_function.js 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024
  1. // '/mqtt/' + tank_num 取代成 '/mqtt/' + tank_num
  2. function inputVacuum() {
  3. var status = "off";
  4. var check = $("input[name=input_vacuum_status]:checked"); // 這裡面是 jQuery 撈取資料的方法, jQuery 常使用到 $ 錢字號
  5. console.log('check:', check);
  6. //大於0代表有被選中, 如果有多個可以呈現勾取的項目數量
  7. if (check.length > 0) {
  8. status = "on";
  9. $("#cmn-toggle-02").prop('checked', false); // 設定為不要勾選
  10. if (!confirm("你確定要開啟入料儲豆槽真空吸料機嗎?")) {
  11. return false;
  12. };
  13. } else {
  14. $("#cmn-toggle-02").prop('checked', true); // 設定為勾選
  15. if (!confirm("你確定要關閉入料儲豆槽真空吸料機嗎?")) {
  16. return false;
  17. };
  18. };
  19. var data = { "tank_num": "DI" + tank_num, "command": "input_vacuum_status", "value": status };
  20. // jquery 請求 '/mqtt/{{tid}}' 頁面
  21. $.post('/mqtt/' + tank_num, data, function (res) { //res:HTTP response argument to the middleware function
  22. console.log('data:', data)
  23. if (res == 'on') {
  24. $("#cmn-toggle-02").prop('checked', true);
  25. setTimeout("alert('入料儲豆槽真空吸料機_開啟成功!')", 500);
  26. } else if (res == 'off') {
  27. $("#cmn-toggle-02").prop('checked', false);
  28. setTimeout("alert('入料儲豆槽真空吸料機_關閉成功!')", 500);
  29. } else {
  30. alert(res);
  31. };
  32. }, 'text')
  33. };
  34. function inputVacuum_ON() {
  35. var data = { "tank_num": "DI" + tank_num, "command": "input_vacuum_status", "value": "on" };
  36. $.post('/mqtt/' + tank_num, data, function (res) {
  37. console.log('data:', data)
  38. if (res == 'on') {
  39. $("#cmn-toggle-02").prop('checked', true);
  40. } else if (res == 'off') {
  41. $("#cmn-toggle-02").prop('checked', false);
  42. } else {
  43. console.log('res error')
  44. };
  45. }, 'text')
  46. }
  47. function inputVacuum_OFF() {
  48. var data = { "tank_num": "DI" + tank_num, "command": "input_vacuum_status", "value": "off" };
  49. $.post('/mqtt/' + tank_num, data, function (res) {
  50. console.log('data:', data)
  51. if (res == 'on') {
  52. $("#cmn-toggle-02").prop('checked', true);
  53. } else if (res == 'off') {
  54. $("#cmn-toggle-02").prop('checked', false);
  55. } else {
  56. console.log('res error')
  57. };
  58. }, 'text')
  59. }
  60. // Benson 真空吸料機 (END)入料儲豆槽
  61. // Benson 真空吸料機 (START)
  62. function tankVacuum() {
  63. var status = "off";
  64. var check = $("input[name=tank_vacuum_status]:checked");
  65. console.log('check:', check);
  66. //大於0代表有被選中
  67. if (check.length > 0) {
  68. status = "on";
  69. $("#cmn-toggle-05").prop('checked', false);
  70. if (!confirm("你確定要開啟真空吸料機嗎?")) {
  71. return false;
  72. };
  73. } else {
  74. $("#cmn-toggle-05").prop('checked', true);
  75. if (!confirm("你確定要關閉真空吸料機嗎?")) {
  76. return false;
  77. };
  78. };
  79. var data = { "tank_num": "D" + tank_num, "command": "tank_vacuum_status", "value": status };
  80. $.post('/mqtt/' + tank_num, data, function (res) {
  81. console.log('data:', data)
  82. if (res == 'on') {
  83. $("#cmn-toggle-05").prop('checked', true);
  84. setTimeout("alert('真空吸料機_開啟成功!')", 500);
  85. } else if (res == 'off') {
  86. $("#cmn-toggle-05").prop('checked', false);
  87. setTimeout("alert('真空吸料機_關閉成功!')", 500);
  88. } else {
  89. alert(res);
  90. };
  91. }, 'text')
  92. $.get('/loading/D' + tank_num, '', function (res) {
  93. if (res.tank_vacuum == 0) {
  94. $("#cmn-toggle-05").prop('checked', false);
  95. } else if (res.tank_vacuum == 1) {
  96. $("#cmn-toggle-05").prop('checked', true);
  97. }
  98. }, 'json');
  99. // window.location.reload();
  100. };
  101. function tankVacuum_ON() {
  102. var data = { "tank_num": "D" + tank_num, "command": "tank_vacuum_status", "value": "on" };
  103. $.post('/mqtt/' + tank_num, data, function (res) {
  104. console.log('data:', data)
  105. if (res == 'on') {
  106. $("#cmn-toggle-05").prop('checked', true);
  107. } else if (res == 'off') {
  108. $("#cmn-toggle-05").prop('checked', false);
  109. } else {
  110. console.log('res error')
  111. };
  112. }, 'text')
  113. // window.location.reload();
  114. }
  115. function tankVacuum_OFF() {
  116. var data = { "tank_num": "D" + tank_num, "command": "tank_vacuum_status", "value": "off" };
  117. $.post('/mqtt/' + tank_num, data, function (res) {
  118. console.log('data:', data)
  119. if (res == 'on') {
  120. $("#cmn-toggle-05").prop('checked', true);
  121. } else if (res == 'off') {
  122. $("#cmn-toggle-05").prop('checked', false);
  123. } else {
  124. console.log('res error')
  125. };
  126. }, 'text')
  127. // window.location.reload();
  128. }
  129. // Benson 真空吸料機 (END)
  130. function tankThreeWayValve() {
  131. //<!--setInterval(Relay,10000);-->
  132. var status = "off";
  133. var check = $("input[name=tank_threewayvalve_status]:checked");
  134. //大於0代表有被選中
  135. if (check.length > 0) {
  136. status = "on";
  137. $("#cmn-toggle-08").prop('checked', false);
  138. if (!confirm("你確定要開啟三通閥嗎?")) {
  139. return false;
  140. };
  141. } else {
  142. $("#cmn-toggle-08").prop('checked', true);
  143. if (!confirm("你確定要關閉三通閥嗎?")) {
  144. return false;
  145. };
  146. };
  147. var data = { "tank_num": "D" + tank_num, "command": "tank_threewayvalve_status", "value": status };
  148. $.post('/mqtt/' + tank_num, data, function (res) {
  149. console.log('data:', data)
  150. if (res == 'on') {
  151. $("#cmn-toggle-08").prop('checked', true);
  152. setTimeout("alert('三通閥入料_開啟成功!')", 500);
  153. } else if (res == 'off') {
  154. $("#cmn-toggle-08").prop('checked', false);
  155. setTimeout("alert('三通閥排氣_關閉成功!')", 500);
  156. } else {
  157. alert(res);
  158. };
  159. }, 'text')
  160. $.get('/loading/D' + tank_num, '', function (res) {
  161. if (res.tank_threewayvalve == 0) {
  162. $("#cmn-toggle-08").prop('checked', false);
  163. } else if (res.tank_threewayvalve == 1) {
  164. $("#cmn-toggle-08").prop('checked', true);
  165. }
  166. }, 'json');
  167. // window.location.reload();
  168. };
  169. function tankThreeWayValve_ON() {
  170. var data = { "tank_num": "D" + tank_num, "command": "tank_threewayvalve_status", "value": "on" };
  171. $.post('/mqtt/' + tank_num, data, function (res) {
  172. console.log('data:', data)
  173. if (res == 'on') {
  174. $("#cmn-toggle-08").prop('checked', true);
  175. } else if (res == 'off') {
  176. $("#cmn-toggle-08").prop('checked', false);
  177. } else {
  178. console.log('res error')
  179. };
  180. }, 'text')
  181. // window.location.reload();
  182. }
  183. function tankThreeWayValve_OFF() {
  184. var data = { "tank_num": "D" + tank_num, "command": "tank_threewayvalve_status", "value": "off" };
  185. $.post('/mqtt/' + tank_num, data, function (res) {
  186. console.log('data:', data)
  187. if (res == 'on') {
  188. $("#cmn-toggle-08").prop('checked', true);
  189. } else if (res == 'off') {
  190. $("#cmn-toggle-08").prop('checked', false);
  191. } else {
  192. console.log('res error')
  193. };
  194. }, 'text')
  195. // window.location.reload();
  196. }
  197. // Benson cargo2_actuator.html 控制蝴蝶閥函數 (START)
  198. function tankDiskValve() {
  199. //<!--setInterval(Relay,10000);-->
  200. var status = "off";
  201. var check = $("input[name=tank_diskvalve_status]:checked");
  202. //大於0代表有被選中
  203. if (check.length > 0) {
  204. status = "on";
  205. $("#cmn-toggle-11").prop('checked', false);
  206. if (!confirm("你確定要開啟蝴蝶閥嗎?")) {
  207. return false;
  208. };
  209. } else {
  210. $("#cmn-toggle-11").prop('checked', true);
  211. if (!confirm("你確定要關閉蝴蝶閥嗎?")) {
  212. return false;
  213. };
  214. };
  215. var data = { "tank_num": "D" + tank_num, "command": "tank_diskvalve_status", "value": status };
  216. $.post('/mqtt/' + tank_num, data, function (res) {
  217. console.log('data:', data)
  218. if (res == 'on') {
  219. $("#cmn-toggle-11").prop('checked', true);
  220. setTimeout("alert('蝴蝶閥_開啟成功!')", 500);
  221. } else if (res == 'off') {
  222. $("#cmn-toggle-11").prop('checked', false);
  223. setTimeout("alert('蝴蝶閥_關閉成功!')", 500);
  224. } else {
  225. alert(res);
  226. };
  227. }, 'text')
  228. $.get('/loading/D' + tank_num, '', function (res) {
  229. if (res.tank_diskvalve == 0) {
  230. $("#cmn-toggle-11").prop('checked', false);
  231. } else if (res.tank_diskvalve == 1) {
  232. $("#cmn-toggle-11").prop('checked', true);
  233. }
  234. }, 'json');
  235. // window.location.reload();
  236. };
  237. function tankDiskValve_ON() {
  238. var data = { "tank_num": "D" + tank_num, "command": "tank_diskvalve_status", "value": "on" };
  239. $.post('/mqtt/' + tank_num, data, function (res) {
  240. console.log('data:', data)
  241. if (res == 'on') {
  242. $("#cmn-toggle-11").prop('checked', true);
  243. } else if (res == 'off') {
  244. $("#cmn-toggle-11").prop('checked', false);
  245. } else {
  246. console.log('res error')
  247. };
  248. }, 'text')
  249. // window.location.reload();
  250. }
  251. function tankDiskValve_OFF() {
  252. var data = { "tank_num": "D" + tank_num, "command": "tank_diskvalve_status", "value": "off" };
  253. $.post('/mqtt/' + tank_num, data, function (res) {
  254. console.log('data:', data)
  255. if (res == 'on') {
  256. $("#cmn-toggle-11").prop('checked', true);
  257. } else if (res == 'off') {
  258. $("#cmn-toggle-11").prop('checked', false);
  259. } else {
  260. console.log('res error')
  261. };
  262. }, 'text')
  263. // window.location.reload();
  264. }
  265. // Benson cargo2_actuator.html 控制蝴蝶閥函數 (END)
  266. // Benson cargo2_actuator.html 閥 (START) 電磁閥消毒
  267. function tankSolenoidDisinfect() {
  268. var status = "off";
  269. var check = $("input[name=tank_solenoid_disinfect_status]:checked");
  270. //大於0代表有被選中
  271. if (check.length > 0) {
  272. status = "on";
  273. $("#cmn-toggle-14").prop('checked', false);
  274. if (!confirm("你確定要開啟電磁閥消毒嗎?")) {
  275. return false;
  276. };
  277. } else {
  278. $("#cmn-toggle-14").prop('checked', true);
  279. if (!confirm("你確定要關閉消毒電磁閥嗎?")) {
  280. return false;
  281. };
  282. };
  283. var data = { "tank_num": "D" + tank_num, "command": "tank_solenoid_disinfect_status", "value": status };
  284. $.post('/mqtt/' + tank_num, data, function (res) {
  285. console.log('data:', data)
  286. if (res == 'on') {
  287. $("#cmn-toggle-14").prop('checked', true);
  288. setTimeout("alert('電磁閥消毒_開啟成功!')", 500);
  289. } else if (res == 'off') {
  290. $("#cmn-toggle-14").prop('checked', false);
  291. setTimeout("alert('電磁閥消毒_關閉成功!')", 500);
  292. } else {
  293. alert(res);
  294. };
  295. }, 'text')
  296. $.get('/loading/D' + tank_num, '', function (res) {
  297. if (res.tank_solenoid_disinfect == 0) {
  298. $("#cmn-toggle-14").prop('checked', false);
  299. } else if (res.tank_solenoid_disinfect == 1) {
  300. $("#cmn-toggle-14").prop('checked', true);
  301. }
  302. }, 'json');
  303. // window.location.reload();
  304. };
  305. function tankSolenoidDisinfect_ON() {
  306. var data = { "tank_num": "D" + tank_num, "command": "tank_solenoid_disinfect_status", "value": "on" };
  307. $.post('/mqtt/' + tank_num, data, function (res) {
  308. console.log('data:', data)
  309. if (res == 'on') {
  310. $("#cmn-toggle-14").prop('checked', true);
  311. } else if (res == 'off') {
  312. $("#cmn-toggle-14").prop('checked', false);
  313. } else {
  314. console.log('res error')
  315. };
  316. }, 'text')
  317. // window.location.reload();
  318. }
  319. function tankSolenoidDisinfect_OFF() {
  320. var data = { "tank_num": "D" + tank_num, "command": "tank_solenoid_disinfect_status", "value": "off" };
  321. $.post('/mqtt/' + tank_num, data, function (res) {
  322. console.log('data:', data)
  323. if (res == 'on') {
  324. $("#cmn-toggle-14").prop('checked', true);
  325. } else if (res == 'off') {
  326. $("#cmn-toggle-14").prop('checked', false);
  327. } else {
  328. console.log('res error')
  329. };
  330. }, 'text')
  331. // window.location.reload();
  332. }
  333. // Benson cargo2_actuator.html 閥 (END) 電磁閥消毒
  334. // Benson cargo2_actuator.html 閥 (START) 電磁閥排水
  335. function tankSolenoidWater() {
  336. var status = "off";
  337. var check = $("input[name=tank_solenoid_water_status]:checked");
  338. //大於0代表有被選中
  339. if (check.length > 0) {
  340. status = "on";
  341. $("#cmn-toggle-17").prop('checked', false);
  342. if (!confirm("你確定要開啟電磁閥排水嗎?")) {
  343. return false;
  344. };
  345. } else {
  346. $("#cmn-toggle-17").prop('checked', true);
  347. if (!confirm("你確定要關閉排水電磁閥嗎?")) {
  348. return false;
  349. };
  350. };
  351. var data = { "tank_num": "D" + tank_num, "command": "tank_solenoid_water_status", "value": status };
  352. $.post('/mqtt/' + tank_num, data, function (res) {
  353. console.log('data:', data)
  354. if (res == 'on') {
  355. $("#cmn-toggle-17").prop('checked', true);
  356. setTimeout("alert('電磁閥排水_開啟成功!')", 500);
  357. } else if (res == 'off') {
  358. $("#cmn-toggle-17").prop('checked', false);
  359. setTimeout("alert('電磁閥排水_關閉成功!')", 500);
  360. } else {
  361. alert(res);
  362. };
  363. }, 'text')
  364. $.get('/loading/D' + tank_num, '', function (res) {
  365. if (res.tank_solenoid_water == 0) {
  366. $("#cmn-toggle-17").prop('checked', false);
  367. } else if (res.tank_solenoid_water == 1) {
  368. $("#cmn-toggle-17").prop('checked', true);
  369. }
  370. }, 'json');
  371. // window.location.reload();
  372. };
  373. function tankSolenoidWater_ON() {
  374. var data = { "tank_num": "D" + tank_num, "command": "tank_solenoid_water_status", "value": "on" };
  375. $.post('/mqtt/' + tank_num, data, function (res) {
  376. console.log('data:', data)
  377. if (res == 'on') {
  378. $("#cmn-toggle-17").prop('checked', true);
  379. } else if (res == 'off') {
  380. $("#cmn-toggle-17").prop('checked', false);
  381. } else {
  382. console.log('res error')
  383. };
  384. }, 'text')
  385. // window.location.reload();
  386. }
  387. function tankSolenoidWater_OFF() {
  388. var data = { "tank_num": "D" + tank_num, "command": "tank_solenoid_water_status", "value": "off" };
  389. $.post('/mqtt/' + tank_num, data, function (res) {
  390. console.log('data:', data)
  391. if (res == 'on') {
  392. $("#cmn-toggle-17").prop('checked', true);
  393. } else if (res == 'off') {
  394. $("#cmn-toggle-17").prop('checked', false);
  395. } else {
  396. console.log('res error')
  397. };
  398. }, 'text')
  399. // window.location.reload();
  400. }
  401. // Benson cargo2_actuator.html 閥 (END) 電磁閥排水
  402. /*
  403. function Motor() {
  404. $.get('/peeling', '', function (res) {
  405. //console.log(res.peeling);
  406. $("#motor_rpm_status").text(res.peeling + ' rpm(每1分鐘更新一次)');
  407. }, 'json');
  408. };
  409. function ChangeMotor() {
  410. var motor_data = $("input[name=tank_motor_status]").val();
  411. if (!confirm("你確定要更改轉速為" + motor_data + "嗎?")) {
  412. return false;
  413. };
  414. var data = { "tank_num": "D" + tank_num, "command": "tank_motor_status", "value": motor_data };
  415. console.log('data:', data)
  416. $.post('/mqtt/' + tank_num, data, function (res) {
  417. if (res == 'on') {
  418. alert('更改成功');
  419. } else {
  420. alert(res);
  421. };
  422. }, 'text');
  423. setTimeout(function(){ location.reload(); }, 500);
  424. };
  425. */
  426. // Benson cargo2_actuator.html 脫皮機馬達 (START) 馬達攪拌棒
  427. function ChangeMotor() {
  428. var motor_data = $("input[id=motor_rpm_data]").val();
  429. if (motor_data == '') {
  430. //$("#cmn-toggle-20").prop('checked', false);
  431. alert("請先輸入要運轉的值!");
  432. return false;
  433. } else if (motor_data == 0) {
  434. alert("轉速 0 為關閉馬達");
  435. } else if (Number(motor_data) < -50 || Number(motor_data) > 50 || !Number(motor_data)) {
  436. //
  437. //$("#cmn-toggle-20").prop('checked', false);
  438. alert("您輸入的值已超過範圍,請重新輸入!" + !Number(motor_data));
  439. return false;
  440. };
  441. var value = "off";
  442. //var check = $("input[name=peeling-machine-on]:checked");
  443. if (motor_data != 0) {
  444. value = motor_data;
  445. //$("#cmn-toggle-20").prop('checked', false);
  446. if (!confirm("你確定要開啟攪拌馬達,運轉速度為 " + motor_data + " RPM 嗎?")) {
  447. return false;
  448. };
  449. } else {
  450. //$("#cmn-toggle-20").prop('checked', true);
  451. if (!confirm("你確定要關閉攪拌馬達嗎?")) {
  452. return false;
  453. };
  454. };
  455. var data = { "tank_num": "D" + tank_num, "command": "tank_motor_status", "value": motor_data };
  456. $.post('/mqtt/' + tank_num, data, function (res) {
  457. console.log('data:', data)
  458. if (res == 'on') {
  459. //$("#cmn-toggle-14").prop('checked', true); // prop 設置元素屬型與元素值, 設定 checked 屬性為 true
  460. setTimeout("alert('攪拌馬達_開啟成功!')", 500); // 設定時間執行函式 delay(500), 只執行一次
  461. var timer = setInterval(Rotate, 60000); // 啟動後會在 60000 毫秒(更新時間一分鐘)內不斷執行 (原因須配合更新時間?)
  462. } else if (res == 'off') {
  463. //$("#cmn-toggle-14").prop('checked', false);
  464. setTimeout("alert('攪拌馬達_關閉成功!')", 500);
  465. clearInterval(timer); // 取消 timer 的不斷執行
  466. $("#motor_rpm_status").text(''); // 設置 #motor_rpm_status 的文字為空, #井字號
  467. } else {
  468. alert(res);
  469. };
  470. }, 'text')
  471. $.get('/loading/D' + tank_num, '', function (res) {
  472. $("#motor_rpm_data").attr("placeholder", res.tank_motor)
  473. }, 'json');
  474. // window.location.reload();
  475. };
  476. function setMotor(RPMData) {
  477. var data = { "tank_num": "D" + tank_num, "command": "tank_motor_status", "value": RPMData };
  478. $.post('/mqtt/' + tank_num, data, function (res) {
  479. console.log('data:', data)
  480. if (res == 'on') {
  481. //$("#cmn-toggle-14").prop('checked', true); // prop 設置元素屬型與元素值, 設定 checked 屬性為 true
  482. var timer = setInterval(Rotate, 60000); // 啟動後會在 60000 毫秒(更新時間一分鐘)內不斷執行 (原因須配合更新時間?)
  483. } else if (res == 'off') {
  484. //$("#cmn-toggle-14").prop('checked', false);
  485. $("#motor_rpm_status").text(''); // 設置 #motor_rpm_status 的文字為空, #井字號
  486. } else {
  487. console.log(res)
  488. };
  489. }, 'text')
  490. $.get('/loading/D' + tank_num, '', function (res) {
  491. $("#motor_rpm_data").attr("placeholder", res.tank_motor)
  492. }, 'json');
  493. // window.location.reload();
  494. };
  495. function ChangeMotor_ON() {
  496. var data = { "tank_num": "D" + tank_num, "command": "tank_motor_status", "value": "20" };
  497. $.post('/mqtt/' + tank_num, data, function (res) {
  498. console.log('data:', data)
  499. if (res == 'on') {
  500. var timer = setInterval(Rotate, 60000);
  501. } else if (res == 'off') {
  502. clearInterval(timer);
  503. $("#motor_rpm_status").text('');
  504. } else {
  505. console.log('res error')
  506. };
  507. }, 'text')
  508. // window.location.reload();
  509. }
  510. function ChangeMotor_OFF() {
  511. var data = { "tank_num": "D" + tank_num, "command": "tank_motor_status", "value": "0" };
  512. $.post('/mqtt/' + tank_num, data, function (res) {
  513. console.log('data:', data)
  514. if (res == 'on') {
  515. var timer = setInterval(Rotate, 60000);
  516. } else if (res == 'off') {
  517. clearInterval(timer);
  518. $("#motor_rpm_status").text('');
  519. } else {
  520. console.log('res error')
  521. };
  522. }, 'text')
  523. // window.location.reload();
  524. }
  525. function Rotate() {
  526. $.get('/peeling', '', function (res) {
  527. //console.log(res.peeling);
  528. $("#motor_rpm_status-status").text(res.peeling + ' rpm(每1分鐘更新一次)');
  529. }, 'json');
  530. setTimeout(function () { location.reload(); }, 500);
  531. };
  532. // Benson cargo2_actuator.html 脫皮機馬達 (END) 馬達攪拌棒
  533. // Benson cargo2_actuator.html 鼓風機機 (START)
  534. // 鼓風機函數
  535. function tankBlower() {
  536. var status = "off";
  537. var check = $("input[name=tank_blower_status]:checked");
  538. //大於0代表有被選中
  539. if (check.length > 0) {
  540. status = "on";
  541. $("#cmn-toggle-23").prop('checked', false);
  542. if (!confirm("你確定要開啟鼓風機嗎?")) {
  543. return false;
  544. };
  545. } else {
  546. $("#cmn-toggle-23").prop('checked', true);
  547. if (!confirm("你確定要關閉鼓風機嗎?")) {
  548. return false;
  549. };
  550. };
  551. var data = { "tank_num": "D" + tank_num, "command": "tank_blower_status", "value": status };
  552. $.post('/mqtt/' + tank_num, data, function (res) {
  553. console.log('data:', data)
  554. if (res == 'on') {
  555. $("#cmn-toggle-23").prop('checked', true);
  556. setTimeout("alert('鼓風機_開啟成功!')", 500);
  557. } else if (res == 'off') {
  558. $("#cmn-toggle-23").prop('checked', false);
  559. setTimeout("alert('鼓風機_關閉成功!')", 500);
  560. } else {
  561. alert(res);
  562. };
  563. }, 'text')
  564. $.get('/loading/D' + tank_num, '', function (res) {
  565. if (res.tank_blower == 0) {
  566. $("#cmn-toggle-23").prop('checked', false);
  567. } else if (res.tank_blower == 1) {
  568. $("#cmn-toggle-23").prop('checked', true);
  569. }
  570. }, 'json');
  571. // window.location.reload();
  572. };
  573. function tankBlower_ON() {
  574. var data = { "tank_num": "D" + tank_num, "command": "tank_blower_status", "value": "on" };
  575. $.post('/mqtt/' + tank_num, data, function (res) {
  576. console.log('data:', data)
  577. if (res == 'on') {
  578. $("#cmn-toggle-23").prop('checked', true);
  579. } else if (res == 'off') {
  580. $("#cmn-toggle-23").prop('checked', false);
  581. } else {
  582. console.log('res error')
  583. };
  584. }, 'text')
  585. // window.location.reload();
  586. }
  587. function tankBlower_OFF() {
  588. var data = { "tank_num": "D" + tank_num, "command": "tank_blower_status", "value": "off" };
  589. $.post('/mqtt/' + tank_num, data, function (res) {
  590. console.log('data:', data)
  591. if (res == 'on') {
  592. $("#cmn-toggle-23").prop('checked', true);
  593. } else if (res == 'off') {
  594. $("#cmn-toggle-23").prop('checked', false);
  595. } else {
  596. console.log('res error')
  597. };
  598. }, 'text')
  599. // window.location.reload();
  600. }
  601. // Benson cargo2_actuator.html 鼓風機 (START)
  602. //電熱管1函數
  603. function tankHeater1() {
  604. var status = "off";
  605. var check = $("input[name=tank_heater1_status]:checked");
  606. //大於0代表有被選中
  607. if (check.length > 0) {
  608. status = "on";
  609. $("#cmn-toggle-26").prop('checked', false);
  610. if (!confirm("你確定要開啟電熱管1嗎?")) {
  611. return false;
  612. };
  613. } else {
  614. $("#cmn-toggle-26").prop('checked', true);
  615. if (!confirm("你確定要關閉電熱管1嗎?")) {
  616. return false;
  617. };
  618. };
  619. var data = { "tank_num": "D" + tank_num, "command": "tank_heater1_status", "value": status };
  620. $.post('/mqtt/' + tank_num, data, function (res) {
  621. console.log('data:', data)
  622. if (res == 'on') {
  623. $("#cmn-toggle-26").prop('checked', true);
  624. setTimeout("alert('電熱管1_開啟成功!')", 500);
  625. } else if (res == 'off') {
  626. $("#cmn-toggle-26").prop('checked', false);
  627. setTimeout("alert('電熱管1_關閉成功!')", 500);
  628. } else {
  629. alert(res);
  630. };
  631. }, 'text')
  632. $.get('/loading/D' + tank_num, '', function (res) {
  633. if (res.tank_heater1 == 0) {
  634. $("#cmn-toggle-26").prop('checked', false);
  635. } else if (res.tank_heater1 == 1) {
  636. $("#cmn-toggle-26").prop('checked', true);
  637. }
  638. }, 'json');
  639. // window.location.reload();
  640. };
  641. function tankHeater1_ON() {
  642. var data = { "tank_num": "D" + tank_num, "command": "tank_heater1_status", "value": "on" };
  643. $.post('/mqtt/' + tank_num, data, function (res) {
  644. console.log('data:', data)
  645. if (res == 'on') {
  646. $("#cmn-toggle-26").prop('checked', true);
  647. } else if (res == 'off') {
  648. $("#cmn-toggle-26").prop('checked', false);
  649. } else {
  650. console.log('res error')
  651. };
  652. }, 'text')
  653. // window.location.reload();
  654. }
  655. function tankHeater1_OFF() {
  656. var data = { "tank_num": "D" + tank_num, "command": "tank_heater1_status", "value": "off" };
  657. $.post('/mqtt/' + tank_num, data, function (res) {
  658. console.log('data:', data)
  659. if (res == 'on') {
  660. $("#cmn-toggle-26").prop('checked', true);
  661. } else if (res == 'off') {
  662. $("#cmn-toggle-26").prop('checked', false);
  663. } else {
  664. console.log('res error')
  665. };
  666. }, 'text')
  667. // window.location.reload();
  668. }
  669. //電熱管2函數
  670. function tankHeater2() {
  671. var status = "off";
  672. var check = $("input[name=tank_heater2_status]:checked");
  673. //大於0代表有被選中
  674. if (check.length > 0) {
  675. status = "on";
  676. $("#cmn-toggle-29").prop('checked', false);
  677. if (!confirm("你確定要開啟電熱管2嗎?")) {
  678. return false;
  679. };
  680. } else {
  681. $("#cmn-toggle-29").prop('checked', true);
  682. if (!confirm("你確定要關閉電熱管2嗎?")) {
  683. return false;
  684. };
  685. };
  686. var data = { "tank_num": "D" + tank_num, "command": "tank_heater2_status", "value": status };
  687. $.post('/mqtt/' + tank_num, data, function (res) {
  688. console.log('data:', data)
  689. if (res == 'on') {
  690. $("#cmn-toggle-29").prop('checked', true);
  691. setTimeout("alert('電熱管2_開啟成功!')", 500);
  692. } else if (res == 'off') {
  693. $("#cmn-toggle-29").prop('checked', false);
  694. setTimeout("alert('電熱管2_關閉成功!')", 500);
  695. } else {
  696. alert(res);
  697. };
  698. }, 'text')
  699. $.get('/loading/D' + tank_num, '', function (res) {
  700. if (res.tank_heater2 == 0) {
  701. $("#cmn-toggle-29").prop('checked', false);
  702. } else if (res.tank_heater2 == 1) {
  703. $("#cmn-toggle-29").prop('checked', true);
  704. }
  705. }, 'json');
  706. // window.location.reload();
  707. };
  708. function tankHeater2_ON() {
  709. var data = { "tank_num": "D" + tank_num, "command": "tank_heater2_status", "value": "on" };
  710. $.post('/mqtt/' + tank_num, data, function (res) {
  711. console.log('data:', data)
  712. if (res == 'on') {
  713. $("#cmn-toggle-29").prop('checked', true);
  714. } else if (res == 'off') {
  715. $("#cmn-toggle-29").prop('checked', false);
  716. } else {
  717. console.log('res error')
  718. };
  719. }, 'text')
  720. // window.location.reload();
  721. }
  722. function tankHeater2_OFF() {
  723. var data = { "tank_num": "D" + tank_num, "command": "tank_heater2_status", "value": "off" };
  724. $.post('/mqtt/' + tank_num, data, function (res) {
  725. console.log('data:', data)
  726. if (res == 'on') {
  727. $("#cmn-toggle-29").prop('checked', true);
  728. } else if (res == 'off') {
  729. $("#cmn-toggle-29").prop('checked', false);
  730. } else {
  731. console.log('res error')
  732. };
  733. }, 'text')
  734. // window.location.reload();
  735. }
  736. // 溫度控制
  737. function tankTemp1Enable() {
  738. var status = "off";
  739. var check = $("input[name=tank_temp1_enable_status]:checked");
  740. //大於0代表有被選中
  741. if (check.length > 0) {
  742. status = "on";
  743. $("#cmn-toggle-35").prop('checked', false);
  744. if (!confirm("你確定要開啟溫度控制嗎?")) {
  745. return false;
  746. };
  747. } else {
  748. $("#cmn-toggle-35").prop('checked', true);
  749. if (!confirm("你確定要關閉溫度控制嗎?")) {
  750. return false;
  751. };
  752. };
  753. var data = { "tank_num": "D" + tank_num, "command": "temp1_enable", "value": status };
  754. $.post('/mqtt/' + tank_num, data, function (res) {
  755. console.log('data:', data)
  756. if (res == 'on') {
  757. $("#cmn-toggle-35").prop('checked', true);
  758. setTimeout("alert('溫度控制_開啟成功!')", 500);
  759. } else if (res == 'off') {
  760. $("#cmn-toggle-35").prop('checked', false);
  761. setTimeout("alert('溫度控制_關閉成功!')", 500);
  762. } else {
  763. alert(res);
  764. };
  765. }, 'text')
  766. $.get('/loading/D' + tank_num, '', function (res) {
  767. if (res.tank_temp1_enable == 0) {
  768. $("#cmn-toggle-35").prop('checked', false);
  769. } else if (res.tank_temp1_enable == 1) {
  770. $("#cmn-toggle-35").prop('checked', true);
  771. }
  772. }, 'json');
  773. // window.location.reload();
  774. };
  775. function tankTemp1Enable_ON() {
  776. var data = { "tank_num": "D" + tank_num, "command": "temp1_enable", "value": "on" };
  777. $.post('/mqtt/' + tank_num, data, function (res) {
  778. console.log('data:', data)
  779. if (res == 'on') {
  780. $("#cmn-toggle-35").prop('checked', true);
  781. } else if (res == 'off') {
  782. $("#cmn-toggle-35").prop('checked', false);
  783. } else {
  784. console.log('res error')
  785. };
  786. }, 'text')
  787. // window.location.reload();
  788. }
  789. function tankTemp1Enable_OFF() {
  790. var data = { "tank_num": "D" + tank_num, "command": "temp1_enable", "value": "off" };
  791. $.post('/mqtt/' + tank_num, data, function (res) {
  792. console.log('data:', data)
  793. if (res == 'on') {
  794. $("#cmn-toggle-35").prop('checked', true);
  795. } else if (res == 'off') {
  796. $("#cmn-toggle-35").prop('checked', false);
  797. } else {
  798. console.log('res error')
  799. };
  800. }, 'text')
  801. // window.location.reload();
  802. }
  803. /* 判斷是否整數
  804. function isInteger(obj) {
  805. return obj % 1 === 0
  806. }
  807. isInteger(3) // true
  808. */
  809. // 設定溫度
  810. /*
  811. <h2>溫度控制設定(單位 ℃):(目前設定溫度) {{tank_temp1}}</h2>
  812. <input name="tank_temp1_data" type="text" placeholder="{{tank_temp1}}" style="width: 40px;">℃ (限整數數值)
  813. <span id="tank_temp1_status" style="color:red;"></span>
  814. <input type="button" value="送出(設定溫度時請點擊)" name="tank_temp1_status" onclick="ChangeTemp1()">
  815. */
  816. function ChangeTemp1() {
  817. var temp_data = $("input[id=tank_temp1_data]").val();
  818. if (temp_data == '') {
  819. //$("#cmn-toggle-20").prop('checked', false);
  820. alert("請先輸入設定溫度!");
  821. return false;
  822. }
  823. var value = "0";
  824. //var check = $("input[name=peeling-machine-on]:checked");
  825. if ($("#cmn-toggle-35").prop('checked')) {
  826. value = temp_data;
  827. //$("#cmn-toggle-20").prop('checked', false);
  828. if (!confirm("你確定要設定內桶溫度為 " + temp_data + " ℃ 嗎?")) {
  829. return false;
  830. };
  831. } else {
  832. //$("#cmn-toggle-20").prop('checked', true);
  833. //你確定要停止桶內溫度設定嗎
  834. if (!confirm("請先開啟溫控開關, 再設定桶內溫度")) {
  835. return false;
  836. };
  837. };
  838. var data = { "tank_num": "D" + tank_num, "command": "temp1", "value": temp_data };
  839. $.post('/mqtt/' + tank_num, data, function (res) {
  840. console.log('data:', data)
  841. if (res == 'on') {
  842. //$("#cmn-toggle-14").prop('checked', true); // prop 設置元素屬型與元素值, 設定 checked 屬性為 true
  843. setTimeout("alert('溫度設定_開啟成功!')", 500); // 設定時間執行函式 delay(500), 只執行一次
  844. } else if (res == 'off') {
  845. //$("#cmn-toggle-14").prop('checked', false);
  846. setTimeout("alert('溫度設定_關閉成功!')", 500);
  847. clearInterval(timer); // 取消 timer 的不斷執行
  848. $("#motor_rpm_status").text(''); // 設置 #motor_rpm_status 的文字為空, #井字號
  849. } else {
  850. alert(res);
  851. };
  852. }, 'text')
  853. $.get('/loading/D' + tank_num, '', function (res) {
  854. $("#tank_temp1_data").attr("placeholder", res.tank_temp1);
  855. }, 'json');
  856. // window.location.reload();
  857. };
  858. // Rita 設定溫度時直接開啟溫控開關
  859. function setTemp1() {
  860. var temp_data = $("input[id=tank_temp1_data]").val();
  861. if (temp_data == '') {
  862. alert("請先輸入設定溫度!");
  863. return false;
  864. }
  865. var value = "0";
  866. value = temp_data;
  867. if (!confirm("你確定要設定內桶溫度為 " + temp_data + " ℃ 嗎?")) {
  868. return false;
  869. };
  870. tankTemp1Enable_ON()
  871. var data = { "tank_num": "D" + tank_num, "command": "temp1", "value": temp_data };
  872. $.post('/mqtt/' + tank_num, data, function (res) {
  873. console.log('data:', data)
  874. if (res == 'on') {
  875. //$("#cmn-toggle-14").prop('checked', true); // prop 設置元素屬型與元素值, 設定 checked 屬性為 true
  876. setTimeout("alert('溫度設定_開啟成功!')", 500); // 設定時間執行函式 delay(500), 只執行一次
  877. } else if (res == 'off') {
  878. //$("#cmn-toggle-14").prop('checked', false);
  879. setTimeout("alert('溫度設定_關閉成功!')", 500);
  880. clearInterval(timer); // 取消 timer 的不斷執行
  881. $("#motor_rpm_status").text(''); // 設置 #motor_rpm_status 的文字為空, #井字號
  882. } else {
  883. alert(res);
  884. };
  885. }, 'text')
  886. $.get('/loading/D' + tank_num, '', function (res) {
  887. $("#tank_temp1_data").attr("placeholder", res.tank_temp1);
  888. }, 'json');
  889. // window.location.reload();
  890. };
  891. function ChangeTemp1_ON() {
  892. var data = { "tank_num": "D" + tank_num, "command": "temp1", "value": "30" };
  893. $.post('/mqtt/' + tank_num, data, function (res) {
  894. console.log('data:', data)
  895. }, 'text')
  896. // window.location.reload();
  897. }
  898. function ChangeTemp1_OFF() {
  899. var data = { "tank_num": "D" + tank_num, "command": "temp1", "value": "25" };
  900. $.post('/mqtt/' + tank_num, data, function (res) {
  901. console.log('data:', data)
  902. }, 'text')
  903. // window.location.reload();
  904. }
  905. // Benson 真空吸料機 (START) 出料儲豆槽
  906. function outputVacuum() {
  907. var status = "off";
  908. var check = $("input[name=output_vacuum_status]:checked");
  909. //大於0代表有被選中
  910. if (check.length > 0) {
  911. status = "on";
  912. $("#cmn-toggle-32").prop('checked', false);
  913. if (!confirm("你確定要開啟出料儲豆槽真空吸料機嗎?")) {
  914. return false;
  915. };
  916. } else {
  917. $("#cmn-toggle-32").prop('checked', true);
  918. if (!confirm("你確定要關閉出料儲豆槽真空吸料機嗎?")) {
  919. return false;
  920. };
  921. };
  922. var data = { "tank_num": "DO" + tank_num, "command": "output_vacuum_status", "value": status };
  923. console.log('data:', data)
  924. $.post('/mqtt/' + tank_num, data, function (res) {
  925. if (res == 'on') {
  926. $("#cmn-toggle-32").prop('checked', true);
  927. setTimeout("alert('出料儲豆槽真空吸料機_開啟成功!')", 500);
  928. } else if (res == 'off') {
  929. $("#cmn-toggle-32").prop('checked', false);
  930. setTimeout("alert('出料儲豆槽真空吸料機_關閉成功!')", 500);
  931. } else {
  932. alert(res);
  933. };
  934. }, 'text')
  935. };
  936. function outputVacuum_ON() {
  937. var data = { "tank_num": "DO" + tank_num, "command": "output_vacuum_status", "value": "on" };
  938. console.log('data:', data)
  939. $.post('/mqtt/' + tank_num, data, function (res) {
  940. if (res == 'on') {
  941. $("#cmn-toggle-32").prop('checked', true);
  942. } else if (res == 'off') {
  943. $("#cmn-toggle-32").prop('checked', false);
  944. } else {
  945. console.log('res error')
  946. };
  947. }, 'text')
  948. }
  949. function outputVacuum_OFF() {
  950. var data = { "tank_num": "DO" + tank_num, "command": "output_vacuum_status", "value": "off" };
  951. console.log('data:', data)
  952. $.post('/mqtt/' + tank_num, data, function (res) {
  953. if (res == 'on') {
  954. $("#cmn-toggle-32").prop('checked', true);
  955. } else if (res == 'off') {
  956. $("#cmn-toggle-32").prop('checked', false);
  957. } else {
  958. console.log('res error')
  959. };
  960. }, 'text')
  961. }
  962. // Benson 真空吸料機 (END) 出料儲豆槽