chenyc
2025-12-09 8130b4d54b7dc46999c1cb6270620bc99bb14708
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/**
 * 测试 MQTT 日志记录功能
 * 模拟 MQTT 连接成功并发送数据
 */
 
const appLogger = require('./loggerConfig');
 
// 模拟的设备信息
const deviceSN = '8VSAFY63';
const topic = 'touxiji/8VSAFY63';
 
// 模拟的医疗数据载荷
const payload = JSON.stringify({
  timestamp: new Date().toISOString(),
  deviceSN: deviceSN,
  IPAddress: '127.0.0.1',
  data: {
    deviceModel: '5008S',
    softwareVersion: '1.0.0',
    ultraFiltrateTarget: 1300,
    ultraFiltrateTotal: 1440,
    ultrafiltrateRateSet: 325,
    dialysisFluidFlow: 200,
    dialysisFluidActual: 162,
    dialysisFluidTemp: 29,
    sodiumConc: 138,
    conductivity: 1380,
    bloodFlow: 200,
    effectiveBloodFlow: 57,
    dialysisBloodVolume: 0,
    returnedBloodVolume: 361,
    plasmaNA: 162,
    clearanceRate: 42,
    instantKT: 299,
    ktvTarget: 130,
    bicarbonate: 338,
    arterialPressure: -119,
    venousPressure: 103,
    transmembranePressure: 29,
    dialysisMode: 'dia',
    runStatus: 2,
    alarmStatus: 0,
    treatmentDuration: 0,
    replacementFluidTarget: 1300,
    replacementRate: 14400,
    replacementVolume: 325
  }
});
 
console.log('📋 MQTT 日志记录测试\n');
console.log('═══════════════════════════════════════\n');
 
// 测试 1: 日志发送前的信息
console.log('✓ 测试 1: 记录发送前的信息');
appLogger.logMqttDataSending(deviceSN, topic, 'properties', payload);
console.log('  日志已记录\n');
 
// 测试 2: 日志发送成功
console.log('✓ 测试 2: 记录发送成功');
appLogger.logMqttPublishSuccess(deviceSN, topic, 'properties', payload);
console.log('  日志已记录\n');
 
// 测试 3: 日志发送失败
console.log('✓ 测试 3: 记录发送失败');
const testError = new Error('连接被拒绝');
appLogger.logMqttPublishFailure(deviceSN, topic, 'properties', testError, payload);
console.log('  日志已记录\n');
 
// 测试 4: 事件类型的消息
console.log('✓ 测试 4: 记录事件类型消息');
const eventPayload = JSON.stringify({
  timestamp: new Date().toISOString(),
  deviceSN: deviceSN,
  eventType: 'treatment_start',
  description: '开始透析治疗',
  severity: 'info'
});
appLogger.logMqttDataSending(deviceSN, topic + '/event', 'event', eventPayload);
appLogger.logMqttPublishSuccess(deviceSN, topic + '/event', 'event', eventPayload);
console.log('  日志已记录\n');
 
console.log('═══════════════════════════════════════');
console.log('✅ 所有日志记录测试完成!\n');
console.log('请检查 logs/mqtt.log 文件验证日志输出');