penInfo.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637
  1. // pages/penInfo/penInfo.js
  2. const event = require('../../tqlsdk/event')
  3. const tqlSDK = getApp().globalData.tqlSDK
  4. import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog"
  5. // import toast from "../../miniprogram_npm/@vant/weapp/toast/toast"
  6. const dialogMessage = ['是否切换蜂鸣器开关?', '是否切换笔尖压力唤醒?', '是否切换呼吸灯开关?', '是否切换保存日志?', '是否切换笔锋开关?', '是否切换过滤算法?']
  7. Page({
  8. /**
  9. * 页面的初始数据
  10. */
  11. data: {
  12. penName: "",
  13. macAddress: '',
  14. blueToothVersion: "",
  15. mcuVersion: '',
  16. customerId: "",
  17. penPower: "",
  18. penMemory: "",
  19. penTime: "",
  20. penBeep: false,
  21. penClickMode: "",
  22. penLed: '',
  23. penAutoOff: "",
  24. penSensor: 0,
  25. penPresure: "",
  26. penOid: '',
  27. save: "",
  28. penBifen: '',
  29. strokeOn: false,
  30. switchLoadingIndex: -1,
  31. sheetIndex: -1,
  32. showSheet: false,
  33. originalName: '', //原笔名
  34. originalSensor: null, //原压力灵敏度
  35. date: "",
  36. originalDate: '', //原日期
  37. originalTime: '', //原时间
  38. time: '',
  39. showTimeFlag: false,
  40. showDateFlag: false,
  41. oidValue: "",
  42. saveLog: false,
  43. invalidCodeNum: 0, //无效码开关
  44. inputInvalidCode: 0,
  45. beepTime: 0, //响铃次数
  46. beepInterval: 500, //响铃间隔
  47. // 2022-7-14 chende
  48. penType: '',
  49. },
  50. /**
  51. *
  52. * 生命周期函数--监听页面加载
  53. */
  54. onLoad: function (options) {
  55. console.log(options)
  56. options.flag === 'true' ? this.setData({
  57. strokeOn: true
  58. }) : this.setData({
  59. strokeOn: false
  60. })
  61. this.setData({
  62. penType: tqlSDK.penType,
  63. penOid: tqlSDK.penOID,
  64. saveLog: tqlSDK.saveDataFlag
  65. })
  66. // 监听笔断开连接
  67. event.on('pageUnconnect', this, () => {
  68. wx.navigateBack({
  69. delta: 0,
  70. })
  71. })
  72. // 此处监听笔的属性值
  73. event.on('penData', this, (data) => {
  74. console.log('笔数据', data)
  75. switch (data.cmd) {
  76. // 获取笔名
  77. case "getPenName":
  78. this.setData({
  79. penName: data.data,
  80. originalName: data.data
  81. })
  82. break;
  83. // 设置笔名
  84. case "setPenName":
  85. this.getPenName()
  86. break
  87. // 获取笔的mac地址
  88. case "getMacAddress":
  89. this.setData({
  90. macAddress: data.data
  91. })
  92. break
  93. // 获取蓝牙版本
  94. case "getBlueToothVersion":
  95. this.setData({
  96. blueToothVersion: data.data
  97. })
  98. break
  99. // 获取笔的电量
  100. case "getPenBattery":
  101. console.log(data)
  102. this.setData({
  103. penPower: data.data.penBattery
  104. })
  105. break
  106. // 获取笔的rtc时间
  107. case "getRTCtime":
  108. let penTime = this.formatDate(data.data)
  109. let penTimeArray = penTime.split(" ");
  110. let newtime = penTimeArray[1].split(":")
  111. newtime.pop();
  112. let res = newtime.join(":")
  113. this.setData({
  114. date: penTimeArray[0],
  115. time: res
  116. })
  117. break
  118. // 设置笔的时间
  119. case "setRTCtime":
  120. break
  121. // 获取笔是否自动关机
  122. case "getPenAutoShutDownTime":
  123. this.setData({
  124. penAutoOff: data.data
  125. })
  126. break
  127. // 设置笔的自动关机时间
  128. case "setPenAutoOff":
  129. this.getPenAutoOff()
  130. break
  131. // 设置笔的点笔开机
  132. case "setPenClickMode":
  133. setTimeout(() => {
  134. this.setData({
  135. switchLoadingIndex: -1
  136. })
  137. this.getPenClickMode();
  138. }, 1000)
  139. break
  140. // 获取是否点笔开机
  141. case "getPenClickMode":
  142. this.setData({
  143. penClickMode: data.data
  144. })
  145. break
  146. // 获取笔的内存使用情况
  147. case "getUsedMemory":
  148. this.setData({
  149. penMemory: data.data
  150. })
  151. break
  152. //设置蜂鸣器是否开启
  153. case 'setPenBeep':
  154. // console.log('setbeep')
  155. setTimeout(() => {
  156. this.setData({
  157. switchLoadingIndex: -1
  158. })
  159. this.getPenBeep()
  160. }, 1000)
  161. break
  162. // 获取蜂鸣器是否开启
  163. case "getPenBeep":
  164. this.setData({
  165. penBeep: data.data
  166. })
  167. break
  168. // 获取mcu固件版本
  169. case 'getMCUVersion':
  170. this.setData({
  171. mcuVersion: data.data
  172. })
  173. break
  174. //获取笔的压力值
  175. case 'getPenSensor':
  176. this.setData({
  177. penSensor: data.data,
  178. originalSensor: data.data
  179. })
  180. break
  181. // 设置笔的压力值
  182. case "setPenSensor":
  183. this.getPenSensor()
  184. break
  185. // 获取笔的客户id
  186. case "customerId":
  187. this.setData({
  188. customerId: data.data
  189. })
  190. break
  191. // 获取点码值
  192. // case "getOID4CodeValue":
  193. // console.log(data)
  194. // this.setData({
  195. // oidValue: data.data
  196. // })
  197. // break
  198. case 'getSensitivityCorrection':
  199. this.setData({
  200. penPresure: data.data
  201. })
  202. break
  203. // 监听无效码数量
  204. case 'getInvalidSetting':
  205. this.setData({
  206. invalidCodeNum: data.data
  207. })
  208. console.log(data.data, '无效码');
  209. break
  210. // 监听无效码设置是否成功
  211. case "setInvalidSetting":
  212. if (data.data) {
  213. this.getInvalidSetting()
  214. }
  215. break
  216. default:
  217. break
  218. }
  219. })
  220. // 获取自动关机时间
  221. this.getPenAutoOff()
  222. // 获取是否点击开机
  223. this.getPenClickMode()
  224. },
  225. /**
  226. * 生命周期函数--监听页面初次渲染完成
  227. */
  228. onReady: function () {
  229. // 此处获取笔的信息
  230. // 获取笔名
  231. this.getPenName()
  232. // 获取蓝牙版本
  233. this.getPenFirmWare()
  234. // 获取蓝牙地址
  235. this.getMacAddress()
  236. // 获取mcu版本
  237. this.getMCUVersion()
  238. // 笔的客户id
  239. this.getCustomerId()
  240. // 获取剩余电量
  241. this.getPenBattery()
  242. // 获取使用内存
  243. this.getPenMemory()
  244. // 获取时间
  245. this.getRTCTime()
  246. // 获取蜂鸣器开关
  247. this.getPenBeep()
  248. // 获取呼吸灯
  249. //笔的自动关机时间
  250. this.getPenAutoOff();
  251. // 灵敏度
  252. this.getPenSensor()
  253. // 压力值范围
  254. // 获取压力校正值
  255. tqlSDK.getPenSensorRegulate()
  256. // 点读码值
  257. this.getInvalidSetting()
  258. setTimeout(() => {
  259. this.getOID()
  260. }, 100)
  261. //
  262. },
  263. /**
  264. * 生命周期函数--监听页面显示
  265. */
  266. onShow: function () {
  267. },
  268. /**
  269. * 生命周期函数--监听页面隐藏
  270. */
  271. onHide: function () {
  272. },
  273. /**
  274. * 生命周期函数--监听页面卸载
  275. */
  276. onUnload: function () {
  277. },
  278. /**
  279. * 页面相关事件处理函数--监听用户下拉动作
  280. */
  281. onPullDownRefresh: function () {
  282. },
  283. /**
  284. * 页面上拉触底事件的处理函数
  285. */
  286. onReachBottom: function () {
  287. },
  288. /**
  289. * 用户点击右上角分享
  290. */
  291. onShareAppMessage: function () {
  292. },
  293. // 获取无效码设置
  294. getInvalidSetting() {
  295. tqlSDK.getMCUsetting(() => {
  296. }, () => {
  297. })
  298. },
  299. // 获取笔名
  300. getPenName() {
  301. tqlSDK.getPenName()
  302. },
  303. // 设置笔名
  304. setPenName(penName) {
  305. tqlSDK.setPenName(penName)
  306. },
  307. // 获取mac地址
  308. getMacAddress() {
  309. tqlSDK.getMACAddress()
  310. },
  311. // 获取蓝牙固件版本
  312. getPenFirmWare() {
  313. tqlSDK.getPenFirmWare()
  314. },
  315. // 获取剩余电量
  316. getPenBattery() {
  317. tqlSDK.getPenBattery()
  318. },
  319. // 写入rtc时间
  320. setPenTime(rtc) {
  321. tqlSDK.setRTCTime(rtc)
  322. },
  323. // 请求RTC时间
  324. getRTCTime() {
  325. tqlSDK.getRTCTime()
  326. },
  327. // 设置自动关机时间
  328. setPenAutoOff(autoOff) {
  329. tqlSDK.setPenAutoOff(autoOff)
  330. },
  331. // 请求自动关机时间
  332. getPenAutoOff() {
  333. tqlSDK.getPenAutoOff()
  334. },
  335. // 获取已使用内存
  336. getPenMemory() {
  337. tqlSDK.getPenMemory()
  338. },
  339. // 获取是否点笔开机
  340. getPenClickMode() {
  341. tqlSDK.getPenClickMode()
  342. },
  343. // 设置是否点笔开机
  344. setPenClickMode() {
  345. tqlSDK.setPenClickMode(!this.data.penClickMode)
  346. },
  347. // 设置是否蜂鸣
  348. setPenBeep() {
  349. // console.log(!this.data.penBeep, 'penbeep')
  350. tqlSDK.setPenBeep(!this.data.penBeep)
  351. },
  352. // 获取是否蜂鸣
  353. getPenBeep() {
  354. tqlSDK.getPenBeep()
  355. },
  356. // 写入压力敏感度
  357. setPenSensor(pensensor) {
  358. tqlSDK.setPenSensor(pensensor)
  359. },
  360. // 获取压力敏感度
  361. getPenSensor() {
  362. tqlSDK.getPenSensor()
  363. },
  364. // 获取mcu固件版本
  365. getMCUVersion() {
  366. tqlSDK.getMCUVersion()
  367. },
  368. // 获取客户id
  369. getCustomerId() {
  370. tqlSDK.getCustomerId()
  371. },
  372. // 获取点读码值
  373. getOID() {
  374. tqlSDK.getOIDValue()
  375. },
  376. // 点击转换按钮
  377. switchButton(e) {
  378. let index = Number(e.currentTarget.dataset.swicthindex)
  379. Dialog.confirm({
  380. title: "提示",
  381. message: dialogMessage[index]
  382. }).then(() => {
  383. this.setData({
  384. switchLoadingIndex: index
  385. })
  386. switch (index) {
  387. // 点击切换蜂鸣器
  388. case 0:
  389. this.setPenBeep()
  390. break
  391. // 笔尖压力唤醒
  392. case 1:
  393. this.setPenClickMode()
  394. break;
  395. case 2:
  396. break
  397. // 保存日志
  398. case 3:
  399. this.switchSaveFlag();
  400. break
  401. case 4:
  402. this.strokeSwitch();
  403. break
  404. default:
  405. break;
  406. }
  407. }).catch(() => {
  408. })
  409. },
  410. // 展示下边栏
  411. showSheet(e) {
  412. let index = Number(e.currentTarget.dataset.changeindex)
  413. this.setData({
  414. showSheet: true,
  415. sheetIndex: index
  416. })
  417. },
  418. // 取消隐藏下边栏
  419. cancleShowSheet() {
  420. this.setData({
  421. showSheet: false,
  422. penName: this.data.originalName
  423. })
  424. },
  425. // 提交下边栏
  426. submitSheet() {
  427. console.log(this.data.sheetIndex)
  428. switch (this.data.sheetIndex) {
  429. // 修改笔名
  430. case 0:
  431. if (this.data.penName === this.data.originalName) {
  432. this.setData({
  433. showSheet: false
  434. })
  435. return
  436. }
  437. this.setPenName(this.data.penName);
  438. this.setData({
  439. showSheet: false
  440. })
  441. break
  442. // 修改时间
  443. case 1:
  444. this.setData({
  445. showSheet: false
  446. })
  447. let time = `${this.data.date} ${this.data.time}:00`
  448. time = time.replace(/-/g, "/")
  449. let timeStamp = new Date(time).getTime()
  450. this.setPenTime(timeStamp)
  451. break
  452. // 修改灵敏度
  453. case 2:
  454. if (this.data.penSensor === this.data.originalSensor) {
  455. this.setData({
  456. showSheet: false
  457. })
  458. return
  459. }
  460. this.setData({
  461. showSheet: false
  462. })
  463. this.setPenSensor(this.data.penSensor)
  464. break
  465. // 修改自动关机时间
  466. case 3:
  467. this.setData({
  468. showSheet: false
  469. })
  470. this.setPenAutoOff(this.data.penAutoOff)
  471. break
  472. // 修改无效码个数
  473. case 4:
  474. this.setData({
  475. showSheet: false
  476. })
  477. this.setInvalidCodeNum(this.data.invalidCodeNum)
  478. break
  479. case 5:
  480. this.setData({
  481. showSheet: false
  482. })
  483. this.triggerBeep(this.data.beepTime, this.data.beepInterval)
  484. break
  485. }
  486. },
  487. // 输入笔名
  488. inputPenName(e) {
  489. this.setData({
  490. penName: e.detail.value
  491. })
  492. },
  493. // 点击输入框时将原笔名保存起来
  494. savePenName(e) {
  495. this.setData({
  496. originalName: e.detail.value
  497. })
  498. },
  499. // 点击灵敏度框
  500. chosenSensor(e) {
  501. let index = Number(e.currentTarget.dataset.clickindex)
  502. console.log(e.currentTarget.dataset);
  503. this.setData({
  504. penSensor: index
  505. })
  506. },
  507. // 灵敏度取消按钮
  508. sensorCancle() {
  509. this.setData({
  510. showSheet: false,
  511. penSensor: this.data.originalSensor
  512. })
  513. },
  514. // 时间戳转字符串
  515. formatDate(date) {
  516. var date = new Date(date);
  517. var YY = date.getFullYear() + '-';
  518. var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  519. var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
  520. var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  521. var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  522. var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  523. return YY + MM + DD + " " + hh + mm + ss;
  524. },
  525. // 改变日期
  526. changeDate(event) {
  527. this.setData({
  528. date: event.detail.value
  529. })
  530. },
  531. // 改变时间
  532. changeTime(event) {
  533. this.setData({
  534. time: event.detail.value
  535. })
  536. },
  537. // 时间取消
  538. timeCancel() {
  539. this.setData({
  540. showSheet: false
  541. })
  542. this.getRTCTime()
  543. },
  544. // 显示datePicker
  545. showDatePicker() {
  546. this.setData({
  547. showDateFlag: true,
  548. originalDate: this.data.date
  549. })
  550. },
  551. // 显示timePicker
  552. showTimePicker() {
  553. this.setData({
  554. showTimeFlag: true,
  555. originalTime: this.data.time
  556. })
  557. },
  558. //自动关机时间输入
  559. inputAutoOff(e) {
  560. this.setData({
  561. penAutoOff: e.detail.value
  562. })
  563. },
  564. // 无效码个数输入
  565. inputInvalidCode(e) {
  566. this.setData({
  567. invalidCodeNum: e.detail.value
  568. })
  569. },
  570. // 自动关机时间取消
  571. autoOffCancel() {
  572. this.setData({
  573. showSheet: false
  574. })
  575. this.getPenAutoOff();
  576. },
  577. // 笔锋开关
  578. strokeSwitch() {
  579. event.emit('strokeSwitch', !this.data.strokeOn)
  580. this.setData({
  581. strokeOn: !this.data.strokeOn
  582. })
  583. },
  584. // 保存日志开关
  585. switchSaveFlag() {
  586. tqlSDK.saveDataFlag = !tqlSDK.saveDataFlag
  587. console.log(tqlSDK.saveDataFlag);
  588. this.setData({
  589. saveLog: tqlSDK.saveDataFlag
  590. })
  591. },
  592. // 设置无效码取消
  593. invalidCodeCancel() {
  594. this.setData({
  595. showSheet: false
  596. })
  597. this.getInvalidSetting()
  598. },
  599. // 设置无效码个数
  600. setInvalidCodeNum(num) {
  601. tqlSDK.setMCUsetting(num)
  602. },
  603. //
  604. inputBeepTime(e) {
  605. this.setData({
  606. beepTime: e.detail.value
  607. })
  608. },
  609. inputBeepInterval(e) {
  610. this.setData({
  611. beepInterval: e.detail.value
  612. })
  613. },
  614. triggerBeep(num, interval) {
  615. tqlSDK.triggerPenBeep(num, interval)
  616. }
  617. })