| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- const {
- statusRegisters
- } = require('./registers')
- const {
- MAX_USER_STATUS_COUNT,
- getUserStatusCount
- } = require('./control-page-state')
- const {
- formatStatusRegisters
- } = require('./status-format')
- const STATUS_SUMMARY_METRICS = [
- { key: 'speed', name: '估算速度', unit: 'RPM', decimals: 0 },
- { key: 'voltage', name: '母线电压', unit: 'V', decimals: 1 },
- { key: 'power', name: '估算功率', unit: 'W', decimals: 1 },
- { key: 'temperature', name: 'NTC 温度', unit: '℃', decimals: 0 }
- ]
- function getVisibleStatusRegisters(userStatusCount) {
- const count = getUserStatusCount(userStatusCount)
- return statusRegisters.filter((item) => (
- item.name.indexOf('用户状态字') !== 0 ||
- Number(item.name.replace('用户状态字 ', '')) <= count
- ))
- }
- function getStatusPageState(userStatusCount) {
- return {
- maxUserStatusCount: MAX_USER_STATUS_COUNT,
- statusRegisters: formatStatusRegisters(getVisibleStatusRegisters(userStatusCount))
- }
- }
- function getFormattedStatusMap() {
- const formattedRegisters = formatStatusRegisters(statusRegisters)
- return formattedRegisters.reduce((result, item) => {
- result[item.name] = item
- return result
- }, {})
- }
- function formatMetricText(item, unit, decimals) {
- if (!item || item.displayValue === undefined || item.displayValue === '--') return '--'
- const numberValue = Number(item.displayValue)
- const displayValue = Number.isFinite(numberValue)
- ? numberValue.toFixed(decimals)
- : String(item.displayValue)
- return `${displayValue}${unit}`
- }
- function getStatusSummaryState() {
- const registerMap = getFormattedStatusMap()
- const stateValue = registerMap['状态机'] && registerMap['状态机'].displayValue
- const faultValue = registerMap['故障码'] && registerMap['故障码'].displayValue
- const faultText = faultValue || '--'
- const isFault = faultText !== '--' && faultText !== '无故障'
- return {
- faultClass: isFault ? 'is-warning' : '',
- faultText,
- metrics: STATUS_SUMMARY_METRICS.map((config) => ({
- key: config.key,
- displayText: formatMetricText(registerMap[config.name], config.unit, config.decimals)
- })),
- stateText: stateValue || '--'
- }
- }
- module.exports = {
- getStatusPageState,
- getStatusSummaryState
- }
|