// MQTT配置文件 // 使用条件编译适配不同平台 let mqtturl; // #ifdef H5 mqtturl = "ws://122.51.194.184:8083/mqtt"; // #endif // #ifdef APP-PLUS mqtturl = "ws://122.51.194.184:8083/mqtt"; //#endif // #ifdef MP-WEIXIN mqtturl = "wx://122.51.194.184:8083/mqtt"; //#endif // #ifdef MP-ALIPAY mqtturl = "alis://122.51.194.184:8083/mqtt"; //#endif console.log('🔧 MQTT环境检测:', { mqtturl: mqtturl, // #ifdef H5 platform: 'H5', // #endif // #ifdef APP-PLUS platform: 'APP-PLUS', // #endif // #ifdef MP-WEIXIN platform: 'MP-WEIXIN', // #endif // #ifdef MP-ALIPAY platform: 'MP-ALIPAY', // #endif }); export const MQTT_CONFIG = { // EMQX服务器地址 - 使用条件编译选择协议 broker: mqtturl, // 连接选项 options: { clientId: 'mobile-inspection-system-' + Math.random().toString(16).substr(2, 8), username: 'dmbroker', password: 'qwer1234', keepalive: 30, clean: true, reconnectPeriod: 1000, connectTimeout: 5000, protocolVersion: 4, rejectUnauthorized: false, }, // 主题配置 topics: { // 设备数据主题 // deviceData: 'hdydcj_01_down', deviceData: 'HDYDCJ_01_UP', // 设备类型 deviceTypes: { WSD: '温湿度', // 温湿度传感器 AC: '空调', // 空调设备 PM: 'PM2.5', // PM2.5传感器 // SIMPLE: '简单数据', // 简单数据(如"11"、"22") // 可以根据需要添加更多设备类型 } } } // 数据解析工具 export const DataParser = { // 解析设备数据 parseDeviceData(rawData) { try { console.log('🔧 开始解析设备数据...') console.log('原始数据:', rawData) console.log('数据类型:', typeof rawData) // 根据截图,数据可能是简单的数字(如"11"、"22") // 先尝试解析为JSON,如果失败则作为简单数据处理 let data try { data = JSON.parse(rawData) console.log('解析后的JSON数据:', data) console.log('是否为数组:', Array.isArray(data)) if (Array.isArray(data) && data.length > 0) { console.log('✅ 返回数组第一个元素:', data[0]) return data[0] // 取第一个设备数据 } else if (data && typeof data === 'object') { console.log('✅ 返回对象数据:', data) return data // 直接返回对象 } } catch (jsonError) { console.log('⚠️ 不是JSON格式,作为简单数据处理') // 处理简单数据(如"11"、"22") const simpleData = { Device: 'SIMPLE', timestamp: Math.floor(Date.now() / 1000), Data: { value: rawData, type: 'simple_data' } } console.log('✅ 返回简单数据:', simpleData) return simpleData } console.log('⚠️ 数据格式不符合预期') return null } catch (error) { console.error('❌ 解析设备数据失败:', error) console.error('原始数据:', rawData) return null } }, // 获取设备类型名称 getDeviceTypeName(deviceCode) { return MQTT_CONFIG.topics.deviceTypes[deviceCode] || deviceCode }, // 转换Unix时间戳为可读时间 formatTimestamp(timestamp) { return new Date(timestamp * 1000).toLocaleString('zh-CN') } }