選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.js 12KB

7ヶ月前
1年前
7ヶ月前
1年前
7ヶ月前
1年前
7ヶ月前
7ヶ月前
1年前
7ヶ月前
1年前
7ヶ月前
7ヶ月前
7ヶ月前
1年前
1年前
1年前
7ヶ月前
7ヶ月前
7ヶ月前
1年前
7ヶ月前
7ヶ月前
1年前
7ヶ月前
1年前
7ヶ月前
7ヶ月前
7ヶ月前
7ヶ月前
1年前
9ヶ月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  1. /**obu蓝牙设备SDK */
  2. // const wjApi = require("../etc/WJAPI/wjBleAPI");
  3. // import * as wjApi from '../../lib/etc/WJAPI/wjBleAPI'
  4. // const jlApi = require("../etc/JLAPI/JLObuSDK.js");
  5. // import * as jlApi from '../../lib/etc/JLAPI/JLObuSDK.js'
  6. const jyApi = require("../etc/JYAPI/GenvictBleUtil.js");
  7. // import * as jlQZApi from '../../lib/etc/JLQZAPI/JLObuSDK.js'
  8. const atApi = require("../etc/ATAPI/ArtcBleUtil.js");
  9. // import * as atApi from '../../lib/etc/ATAPI/ArtcBleUtil.js'
  10. // import * as jtApi from '../../lib/etc/JTAPI/BleUtil.js'
  11. const wqApi = require("../etc/WQAPI/WCDObuSdk.js");
  12. // import * as wqApi from '../../lib/etc/WQAPI/WCDObuSdk.js'
  13. const cgApi = require("../etc/CGAPI/cguBle.js");
  14. // import * as cgApi from '../../lib/etc/CGAPI/cguBle.js'
  15. // const tdApi = require("../etc/TDAPI/TDRObuSDK.js");
  16. // import * as tdApi from '../../lib/etc/TDAPI/TDRObuSDK.js'
  17. // import * as zzApi from '../../lib/etc/WJAPI/wjBleAPI'
  18. const datas = require("./datas.js");
  19. const tools = require('./tools.js');
  20. let jlApi = require("../../static/etc/JLAPI/JLObuSDK.js"); //聚力SDK
  21. let wjApi = require("../etc/WJAPI/wjBleAPI");
  22. let tdApi = require("../etc/TDAPI/TDRObuSDK.js");
  23. let zzApi = require("../etc/WJAPI/wjBleAPI.js");
  24. let jtApi = require("../etc/JTAPI/BleUtil.js");
  25. const jlQZApi = require("../etc/JLQZAPI/JLObuSDK.js");
  26. let kcApi = require("../etc/kcBle/kcBleAPI.js");
  27. let mcApi = require("../etc/MCAPI/MCObuSDK.js");
  28. // let jyApiEtc = require("../etc/JYAPI-ETC/jy-bluetooth-obu-wechatmp.js"); //前装-金溢
  29. let ArtcBleUtilApi = require("../etc/ArtcBleAPI/ArtcGuiZhouAPI.js");//艾特斯 ETC- 5201 国密
  30. let mcApi9901 = require("../etc/MCSDK9901/BleUtil9901.js"); //9901 和 国密5201单片
  31. import {
  32. login
  33. } from "../../utils/network/api";
  34. import {
  35. getItem
  36. } from "../../utils/storage";
  37. // import { startHeartbeat, stopHeartbeat } from "@/pages/bluetooth/heartbeatService"
  38. if (getItem('environment') == 'ZFB') {
  39. tdApi = require("../etc/TDRAPI/TDRObuSDK.js");
  40. jlApi = require("../etc/JLObuSDK/JLObuSDK.js");
  41. wjApi = require("../etc/wjBle/WJBleAPI");
  42. zzApi = require("../etc/wjBle/WJBleAPI.js");
  43. jtApi = require("../etc/JTAPIS/BleUtil.js");
  44. }
  45. // 9901
  46. const wjApi9901 = require("../etc/WJSDK9901/wjBleAPI.js");
  47. /**
  48. * 断开蓝牙
  49. */
  50. function disconnectDevice() {
  51. var connectPrefixName = datas.getData("connectPrefixName");
  52. console.log('断开蓝牙connectPrefixName', getItem('environment'), tdApi, datas.getData("connectPrefixName"))
  53. switch (connectPrefixName) {
  54. case "ETC":
  55. let obj = ""
  56. if (datas.getData("deviceName").includes("KC") || datas.getData("deviceName").includes("K")) {
  57. obj=kcApi
  58. } else if (datas.getData("deviceName").includes("JL")) {
  59. obj=jlQZApi
  60. } else if (datas.getData("deviceName").includes("WJ")) {
  61. obj=wjApi9901
  62. } else if (datas.getData("deviceName").includes("ATS")) {
  63. obj=ArtcBleUtilApi
  64. }else if (datas.getData("deviceName").includes("MC")) {
  65. obj=mcApi9901
  66. }else if (datas.getData("deviceName").includes("WQ")) {
  67. obj=wqApi
  68. }
  69. obj.disconnectDevice(function(res) {
  70. datas.setData("bluLinkStatus", false);
  71. datas.setData("connectPrefixName", "");
  72. });
  73. // else if (datas.getData("deviceName").includes("JY")) {
  74. // jyApiEtc.disconnectDevice(function(res) {
  75. // datas.setData("bluLinkStatus", false);
  76. // datas.setData("connectPrefixName", "");
  77. // });
  78. // }
  79. break;
  80. case "WJ":
  81. wjApi.disconnectDevice(function(res) {
  82. datas.setData("bluLinkStatus", false);
  83. datas.setData("connectPrefixName", "");
  84. });
  85. break;
  86. case "JL":
  87. jlApi.disconnectDevice(function(res) {
  88. datas.setData("bluLinkStatus", false);
  89. datas.setData("connectPrefixName", "");
  90. });
  91. break;
  92. case "BY":
  93. jyApi.disconnectDevice(function(res) {
  94. datas.setData("bluLinkStatus", false);
  95. datas.setData("connectPrefixName", "");
  96. });
  97. break;
  98. case "JY":
  99. jyApi.disconnectDevice(function(res) {
  100. datas.setData("bluLinkStatus", false);
  101. datas.setData("connectPrefixName", "");
  102. });
  103. break;
  104. case "AT":
  105. atApi.disconnectDevice(function(res) {
  106. datas.setData("bluLinkStatus", false);
  107. datas.setData("connectPrefixName", "");
  108. // console.log(res)
  109. });
  110. break;
  111. case "JT":
  112. jtApi.disconnectDevice(function(res) {
  113. datas.setData("bluLinkStatus", false);
  114. datas.setData("connectPrefixName", "");
  115. });
  116. break;
  117. case "WQ":
  118. wqApi.disconnectDevice(function(res) {
  119. datas.setData("bluLinkStatus", false);
  120. datas.setData("connectPrefixName", "");
  121. });
  122. break;
  123. case "CG":
  124. cgApi.disconnectDevice(function(res) {
  125. datas.setData("bluLinkStatus", false);
  126. datas.setData("connectPrefixName", "");
  127. });
  128. break;
  129. case "TD":
  130. console.log(tdApi, '==================================')
  131. tdApi.disconnectDevice(function(res) {
  132. datas.setData("bluLinkStatus", false);
  133. datas.setData("connectPrefixName", "");
  134. console.log(res, '=============')
  135. });
  136. break;
  137. case "ZZ":
  138. zzApi.disconnectDevice(function(res) {
  139. datas.setData("bluLinkStatus", false);
  140. datas.setData("connectPrefixName", "");
  141. });
  142. break;
  143. case "MC":
  144. mcApi.disconnectDevice(function(res) {
  145. datas.setData("bluLinkStatus", false);
  146. datas.setData("connectPrefixName", "");
  147. });
  148. break;
  149. default:
  150. break;
  151. }
  152. }
  153. /**
  154. * 透传
  155. * type 10 写卡 20 写OBU
  156. */
  157. function transCmd(cmdArr, type, func, callBack = null) {
  158. var connectPrefixName = datas.getData("connectPrefixName");
  159. console.log('指令执行内容1', datas.getData("connectPrefixName"), cmdArr, type)
  160. switch (connectPrefixName) {
  161. case "ETC":
  162. //-------------deviceName前装-科畅
  163. console.log("datas.-----",datas.getData("deviceName"),datas.getData("deviceName").includes("KC"),datas.getData("deviceName").includes("K"))
  164. let obj = ""
  165. if (datas.getData("deviceName").includes("KC")|| datas.getData("deviceName").includes("K")) {
  166. console.log('kc执行内容====', cmdArr, type)
  167. obj=kcApi
  168. } else if (datas.getData("deviceName").includes("JL")) {
  169. obj=jlQZApi
  170. } else if (datas.getData("deviceName").includes("WJ")) {
  171. obj=wjApi9901
  172. } else if (datas.getData("deviceName").includes("ATS")) {
  173. obj=ArtcBleUtilApi
  174. } else if (datas.getData("deviceName").includes("MC")) {
  175. obj=mcApi9901
  176. }else if (datas.getData("deviceName").includes("WQ")) {
  177. obj=wqApi
  178. }
  179. obj.transCmd(cmdArr, type, function(res) {
  180. console.log(datas.getData("deviceName")+'执行内容====11111', res)
  181. if (res.code == 0) {
  182. func(res.data);
  183. } else {
  184. if (callBack != null) {
  185. callBack(res);
  186. } else {
  187. alertF(res.msg);
  188. }
  189. }
  190. });
  191. // else if (datas.getData("deviceName").includes("JY")) {
  192. // jyApiEtc.transCmd(cmdArr, type, function(res) {
  193. // console.log('JY执行内容====11111', res)
  194. // if (res.code == 0) {
  195. // func(res.data);
  196. // } else {
  197. // if (callBack != null) {
  198. // callBack(res);
  199. // } else {
  200. // alertF(res.msg);
  201. // }
  202. // }
  203. // });
  204. // }
  205. break;
  206. case "WJ":
  207. console.log('WJ执行内容====', cmdArr, type)
  208. wjApi.transCmd(cmdArr, type, function(res) {
  209. console.log('WJ执行内容====11111', res)
  210. if (res.code == 0) {
  211. func(res.data);
  212. } else {
  213. if (callBack != null) {
  214. callBack(res);
  215. } else {
  216. alertF(res.msg);
  217. }
  218. }
  219. });
  220. break;
  221. case "JL":
  222. console.log('JL执行内容====', cmdArr, type)
  223. jlApi.transCmd(cmdArr, type, function(res) {
  224. console.log('JL执行内容====11111', res)
  225. if (res.code == 0) {
  226. func(res.data);
  227. } else {
  228. if (callBack != null) {
  229. callBack(res);
  230. } else {
  231. alertF(res.msg);
  232. }
  233. }
  234. });
  235. break;
  236. case "BY":
  237. console.log('JL执行内容====', cmdArr, type)
  238. jyApi.transCmd(cmdArr, type, function(res) {
  239. console.log('JL执行内容====11111', res)
  240. if (res.code == 0) {
  241. func(res.data);
  242. } else {
  243. if (callBack != null) {
  244. callBack(res);
  245. } else {
  246. alertF(res.msg);
  247. }
  248. }
  249. });
  250. break;
  251. case "BY":
  252. console.log('JL执行内容====', cmdArr, type)
  253. jyApi.transCmd(cmdArr, type, function(res) {
  254. console.log('JL执行内容====11111', res)
  255. if (res.code == 0) {
  256. func(res.data);
  257. } else {
  258. if (callBack != null) {
  259. callBack(res.msg);
  260. } else {
  261. alertF(res.msg);
  262. }
  263. }
  264. });
  265. break;
  266. case "JY":
  267. jyApi.transCmd(cmdArr, type, function(res) {
  268. if (res.code == 0) {
  269. func(res.data);
  270. } else {
  271. if (callBack != null) {
  272. callBack(res);
  273. } else {
  274. alertF(res.msg);
  275. }
  276. }
  277. });
  278. break;
  279. case "AT":
  280. atApi.transCmd(cmdArr, type, function(res) {
  281. if (res.code == 0) {
  282. func(res.data);
  283. } else {
  284. if (callBack != null) {
  285. callBack(res);
  286. } else {
  287. alertF(res.msg);
  288. }
  289. }
  290. });
  291. break;
  292. case "JT":
  293. jtApi.transCmd(cmdArr, type, function(res) {
  294. console.log('指令执行结果:', res)
  295. if (res.code == 0) {
  296. func(res.data);
  297. } else {
  298. if (callBack != null) {
  299. callBack(res);
  300. } else {
  301. alertF(res.msg);
  302. }
  303. }
  304. });
  305. break;
  306. case "WQ":
  307. wqApi.transCmd(cmdArr, type, function(res) {
  308. console.log('握奇执行结果:===========', res)
  309. if (res.code == 0) {
  310. func(res.data);
  311. } else {
  312. if (callBack != null) {
  313. callBack(res);
  314. } else {
  315. alertF(res.msg);
  316. }
  317. }
  318. });
  319. break;
  320. case "CG":
  321. cgApi.transCmd(cmdArr, type, function(res) {
  322. if (res.code == 0) {
  323. func(res.data);
  324. } else {
  325. if (callBack != null) {
  326. callBack(res);
  327. } else {
  328. alertF(res.msg);
  329. }
  330. }
  331. });
  332. break;
  333. case "TD":
  334. console.log('TD执行内容====', cmdArr, type)
  335. tdApi.transCmd(cmdArr, type, function(res) {
  336. console.log('TD执行内容====123', cmdArr, type,res)
  337. if (res.code == 0) {
  338. func(res.data);
  339. } else {
  340. if (callBack != null) {
  341. callBack(res);
  342. } else {
  343. alertF(res.msg);
  344. }
  345. }
  346. });
  347. break;
  348. case "ZZ":
  349. zzApi.transCmd(cmdArr, type, function(res) {
  350. if (res.code == 0) {
  351. func(res.data);
  352. } else {
  353. if (callBack != null) {
  354. callBack(res);
  355. } else {
  356. alertF(res.msg);
  357. }
  358. }
  359. });
  360. break;
  361. case "MC":
  362. mcApi.transCmd(cmdArr, type, function(res) {
  363. if (res.code == 0) {
  364. func(res.data);
  365. } else {
  366. if (callBack != null) {
  367. callBack(res);
  368. } else {
  369. alertF(res.msg);
  370. }
  371. }
  372. });
  373. break;
  374. default:
  375. datas.setData("bluLinkStatus", false);
  376. datas.setData("connectPrefixName", "");
  377. if (callBack != null) {
  378. callBack("没有找到设备"+connectPrefixName);
  379. } else {
  380. alertF("没有找到设备");
  381. }
  382. break;
  383. }
  384. }
  385. /**
  386. * 透传
  387. * type 10 写卡 20 写OBU
  388. */
  389. function transCmdArrAfter(cmdArr, type) {
  390. return new Promise(async (resole, reject) => {
  391. try {
  392. console.log('指令执行内容', cmdArr, type)
  393. // 判断是否为数组
  394. if (typeof cmdArr === 'string') {
  395. // 如果是字符串,转换为字符数组
  396. cmdArr = cmdArr.split(',');
  397. }
  398. const datas = {}
  399. for (let i = 0; i < cmdArr.length; i++) {
  400. const cmdStr = cmdArr[i]
  401. console.log(i, cmdStr, 'cmdStr');
  402. const itemDatas = await transCmd([cmdStr], type)
  403. datas[cmdStr] = itemDatas
  404. }
  405. console.log(datas, '----------执行结果---------', cmdArr, type);
  406. for (let i in datas) {
  407. console.log(" datas[i]", datas[i])
  408. let itemCode = datas[i][0].substring(datas[i][0].length - 4);
  409. if (itemCode !== '9000') {
  410. reject(datas);
  411. uni.hideLoading()
  412. return
  413. }
  414. datas[i][0] = datas[i][0].toUpperCase();
  415. }
  416. resole(datas)
  417. } catch (e) {
  418. //TODO handle the exception
  419. console.log('错误错误', e);
  420. reject(e);
  421. }
  422. })
  423. }
  424. /**
  425. * 提示加关蓝牙
  426. */
  427. function alertF(msg) {
  428. // 隐藏加载框
  429. // tools.hideLoadingAlert();
  430. // 提示对话框
  431. tools.showModalAlert(msg);
  432. // stopHeartbeat();
  433. }
  434. module.exports = {
  435. disconnectDevice,
  436. transCmd,
  437. transCmdArrAfter
  438. };