index.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. const themeService = require('../../store/theme-store.js')
  2. const {
  3. controlService,
  4. getControlPageState
  5. } = require('../../features/motor-control/index.js')
  6. const {
  7. createPageToast
  8. } = require('../../utils/page-toast.js')
  9. Page({
  10. data: getControlPageState(),
  11. onLoad() {
  12. this.pageToast = createPageToast(this, this.data)
  13. controlService.init()
  14. themeService.init()
  15. this.unsubscribeControl = controlService.subscribe((controlState) => {
  16. const nextState = getControlPageState(controlState)
  17. this.setData(nextState)
  18. this.pageToast.showFromState(nextState)
  19. })
  20. this.unsubscribeTheme = themeService.subscribe((themeState) => {
  21. this.setData(getControlPageState(controlService.getState(), themeState))
  22. })
  23. },
  24. onShow() {
  25. if (this.pageToast) {
  26. this.pageToast.setActive(true)
  27. }
  28. controlService.syncSharedInputs()
  29. this.setData(getControlPageState())
  30. },
  31. onHide() {
  32. if (this.pageToast) {
  33. this.pageToast.setActive(false)
  34. }
  35. },
  36. onUnload() {
  37. if (this.pageToast) {
  38. this.pageToast.destroy()
  39. this.pageToast = null
  40. }
  41. if (this.unsubscribeControl) {
  42. this.unsubscribeControl()
  43. this.unsubscribeControl = null
  44. }
  45. if (this.unsubscribeTheme) {
  46. this.unsubscribeTheme()
  47. this.unsubscribeTheme = null
  48. }
  49. },
  50. readStatus() {
  51. if (!this.data.canReadStatus) return
  52. controlService.readStatus()
  53. },
  54. onAutoReadStatusTap() {
  55. if (!this.data.autoReadStatus && !this.data.canReadStatus) return
  56. controlService.setAutoReadStatus(!this.data.autoReadStatus)
  57. },
  58. onSpeedCommandInput(event) {
  59. controlService.updateSpeedCommandInput(event.detail.value)
  60. },
  61. onSpeedCommandBlur(event) {
  62. controlService.updateSpeedCommandBlur(event.detail.value)
  63. },
  64. readControlStatus() {
  65. if (!this.data.connectedDevice || this.data.isBootloaderBusy) return
  66. controlService.readControlStatus()
  67. },
  68. onControlButtonTap(event) {
  69. if (!this.data.connectedDevice || this.data.isBootloaderBusy) return
  70. controlService.sendControlCommand(event.currentTarget.dataset.key)
  71. },
  72. chooseFirmwareFile() {
  73. if (this.data.isBootloaderBusy) return
  74. controlService.chooseFirmwareFile('message')
  75. },
  76. startFirmwareUpgrade() {
  77. if (!this.data.connectedDevice || !this.data.isFirmwareReady || this.data.isBootloaderBusy) return
  78. controlService.startFirmwareUpgrade()
  79. },
  80. readProgramChecksum() {
  81. if (!this.data.connectedDevice || this.data.isBootloaderBusy) return
  82. controlService.readProgramChecksum()
  83. },
  84. handshakeBootloader() {
  85. if (!this.data.connectedDevice || this.data.isBootloaderBusy) return
  86. controlService.handshakeBootloader()
  87. },
  88. exitBootloader() {
  89. if (!this.data.connectedDevice || this.data.isBootloaderBusy) return
  90. controlService.exitBootloader()
  91. }
  92. })