| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- const settingsService = require('../../store/settings-store.js')
- const themeService = require('../../store/theme-store.js')
- const transport = require('../../transport/ble-core.js')
- const {
- toolNavigation
- } = require('../tools/index.js')
- const protocolImplementation = require('./protocol-implementation.js')
- function getSettingsPageState(
- settingsState = settingsService.getState(),
- themeState = themeService.getState(),
- transportState = transport.getState()
- ) {
- const nightModeEnabledSwitch = settingsState.nightModeFollowSystem
- ? themeState.themeMode === 'dark'
- : settingsState.nightModeEnabled
- const protocolMode = settingsState.protocolMode || settingsService.PROTOCOL_MODE.STORAGE_ACCESS
- const protocolOptions = settingsService.PROTOCOL_OPTIONS
- const protocolIndex = Math.max(0, protocolOptions.findIndex((option) => (
- option.key === protocolMode
- )))
- const protocol = protocolOptions[protocolIndex] || protocolOptions[0]
- const isNoProtocol = settingsService.isNoProtocol(protocol.key)
- const isModbusProtocol = settingsService.isModbusProtocol(protocol.key)
- const isStorageAccessProtocol = settingsService.isStorageAccessProtocol(protocol.key)
- const storageAccessDefaultEndian = settingsService.normalizeStorageAccessEndian(
- settingsState.storageAccessDefaultEndian
- )
- return {
- ...settingsState,
- ...themeState,
- connectedDevice: transportState.connectedDevice,
- isNoProtocol,
- isModbusProtocol,
- isStorageAccessProtocol,
- nightModeEnabledSwitch,
- statusPollMaxInterval: settingsService.STATUS_POLL_MAX_INTERVAL,
- statusPollMinInterval: settingsService.STATUS_POLL_MIN_INTERVAL,
- protocolIndex,
- storageProtocolImplementationEntryMeta: '从机实现与结构体定义参考',
- storageProtocolImplementationView: protocolImplementation.VIEW_ID,
- protocolOptions,
- storageAccessDefaultEndian,
- storageAccessDefaultEndianBigSwitch: storageAccessDefaultEndian === 'big',
- storageAccessDefaultEndianText: storageAccessDefaultEndian === 'big' ? '大端' : '小端',
- protocolText: protocol.label,
- toolEntries: toolNavigation.getToolEntries()
- }
- }
- module.exports = {
- getSettingsPageState
- }
|