| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- const transport = require('../../utils/ble-transport')
- const syncService = require('../../utils/sync-service')
- const themeService = require('../../utils/theme-service')
- const {
- DEFAULT_DEVICE_FILTER,
- getHomePageState
- } = require('../../utils/home-view-model')
- const {
- createPageToast
- } = require('../../utils/page-toast')
- Page({
- data: getHomePageState(),
- onLoad() {
- this.pageToast = createPageToast(this, this.data)
- transport.init()
- themeService.init()
- this.unsubscribeTransport = transport.subscribe((transportState) => {
- const nextState = getHomePageState(transportState, this.data.deviceFilterMode, syncService.getState())
- this.setData(nextState)
- this.pageToast.showFromState(nextState)
- })
- this.unsubscribeSync = syncService.subscribe((syncState) => {
- this.setData(getHomePageState(transport.getState(), this.data.deviceFilterMode, syncState))
- })
- this.unsubscribeTheme = themeService.subscribe((themeState) => {
- this.setData(themeState)
- })
- },
- onShow() {
- if (this.pageToast) {
- this.pageToast.setActive(true)
- }
- },
- onHide() {
- if (this.pageToast) {
- this.pageToast.setActive(false)
- }
- },
- onUnload() {
- if (this.pageToast) {
- this.pageToast.destroy()
- this.pageToast = null
- }
- if (this.unsubscribeTransport) {
- this.unsubscribeTransport()
- this.unsubscribeTransport = null
- }
- if (this.unsubscribeSync) {
- this.unsubscribeSync()
- this.unsubscribeSync = null
- }
- if (this.unsubscribeTheme) {
- this.unsubscribeTheme()
- this.unsubscribeTheme = null
- }
- },
- onCommandChange(event) {
- transport.setCommandIndex(event.detail.value)
- },
- onSlaveAddressInput(event) {
- transport.setProtocolInput({
- slaveAddress: event.detail.value
- })
- },
- onRegisterAddressInput(event) {
- transport.setProtocolInput({
- registerAddress: event.detail.value
- })
- },
- onCommandValueInput(event) {
- transport.setProtocolInput({
- commandValue: event.detail.value
- })
- },
- onCoilValueChange(event) {
- transport.setProtocolInput({
- coilEnabled: !!event.detail.value
- })
- },
- sendGeneratedFrame() {
- if (!this.data.connectedDevice || !this.data.generatedHex) return
- transport.sendGeneratedFrame()
- },
- onHexInput(event) {
- transport.setSendHex(event.detail.value)
- },
- clearInput() {
- transport.clearInput()
- },
- sendHexFrame() {
- if (!this.data.connectedDevice) return
- transport.sendHexFrame()
- },
- startScan() {
- if (!this.data.canStartScan) return
- if (this.data.isDiscovering) {
- transport.stopScan()
- return
- }
- transport.startScan()
- },
- syncRegisters() {
- if (!this.data.canSyncRegisters) return
- syncService.syncAllRegisters()
- },
- clearDevices() {
- if (!this.data.canClearDevices) return
- transport.clearDevices()
- },
- onDeviceFilterTap(event) {
- const deviceFilterMode = event.currentTarget.dataset.filter || DEFAULT_DEVICE_FILTER
- this.setData(getHomePageState(transport.getState(), deviceFilterMode))
- },
- connectDevice(event) {
- transport.connectDeviceById(event.currentTarget.dataset.deviceId)
- },
- disconnectDevice() {
- if (!this.data.canDisconnectDevice) return
- transport.disconnectDevice()
- },
- clearLogs() {
- transport.clearLogs()
- }
- })
|