关闭实时报警显示时屏蔽故障数据

main
wangqiyang 2 days ago
parent cd67652c9c
commit 3e6cf9d277

@ -158,8 +158,9 @@ func getDeviceStatus2Real(rpc towgo.JsonRpcConnection) {
d.DeviceStatus = *read d.DeviceStatus = *read
scanLoopCount := configuredLoopCount() scanLoopCount := configuredLoopCount()
displayLoopCount := monitorDisplayLoopCount() displayLoopCount := monitorDisplayLoopCount()
alarmDisplayEnabled := scanConfigManager.GetAlarmDisplayEnabled()
d.ScanDeviceCount = scanLoopCount d.ScanDeviceCount = scanLoopCount
d.AlarmDisplayEnabled = scanConfigManager.GetAlarmDisplayEnabled() d.AlarmDisplayEnabled = alarmDisplayEnabled
loops := make([]DeviceStatusLoop, displayLoopCount) loops := make([]DeviceStatusLoop, displayLoopCount)
var wg sync.WaitGroup var wg sync.WaitGroup
for i := 0; i < displayLoopCount; i++ { for i := 0; i < displayLoopCount; i++ {
@ -178,7 +179,7 @@ func getDeviceStatus2Real(rpc towgo.JsonRpcConnection) {
loop.A = parametersRead.DCCurrent loop.A = parametersRead.DCCurrent
kw := float64(loop.V*loop.A) / 1000 kw := float64(loop.V*loop.A) / 1000
loop.Kw = float32(math.Round(kw*1000) / 1000) loop.Kw = float32(math.Round(kw*1000) / 1000)
if idx < scanLoopCount { if alarmDisplayEnabled && idx < scanLoopCount {
loop.Faults = m9z.BuildLoopFaults(uint(idx+1), parametersRead.AlarmStatus, parametersRead.AlarmCode) loop.Faults = m9z.BuildLoopFaults(uint(idx+1), parametersRead.AlarmStatus, parametersRead.AlarmCode)
loop.HasFault = len(loop.Faults) > 0 loop.HasFault = len(loop.Faults) > 0
loop.FaultMsg = joinLoopFaultMessages(loop.Faults) loop.FaultMsg = joinLoopFaultMessages(loop.Faults)
@ -196,7 +197,7 @@ func getDeviceStatus2Real(rpc towgo.JsonRpcConnection) {
return d.Loops[i].Index < d.Loops[j].Index return d.Loops[i].Index < d.Loops[j].Index
}) })
for _, loop := range d.Loops { for _, loop := range d.Loops {
if loop.HasFault && loop.Index < scanLoopCount { if alarmDisplayEnabled && loop.HasFault && loop.Index < scanLoopCount {
recordLoopFaults(cuid, uint(loop.Index+1), loop.V, loop.Faults) recordLoopFaults(cuid, uint(loop.Index+1), loop.V, loop.Faults)
} }
} }
@ -207,9 +208,10 @@ func getDeviceStatus2Real(rpc towgo.JsonRpcConnection) {
func buildDemoDeviceStatus2() *DeviceStatus { func buildDemoDeviceStatus2() *DeviceStatus {
displayLoopCount := monitorDisplayLoopCount() displayLoopCount := monitorDisplayLoopCount()
scanLoopCount := configuredLoopCount() scanLoopCount := configuredLoopCount()
alarmDisplayEnabled := scanConfigManager.GetAlarmDisplayEnabled()
d := &DeviceStatus{ d := &DeviceStatus{
ScanDeviceCount: scanLoopCount, ScanDeviceCount: scanLoopCount,
AlarmDisplayEnabled: scanConfigManager.GetAlarmDisplayEnabled(), AlarmDisplayEnabled: alarmDisplayEnabled,
Loops: make([]DeviceStatusLoop, displayLoopCount), Loops: make([]DeviceStatusLoop, displayLoopCount),
} }
d.Mode = 0 d.Mode = 0
@ -233,7 +235,7 @@ func buildDemoDeviceStatus2() *DeviceStatus {
kw := float64(loop.V*loop.A) / 1000 kw := float64(loop.V*loop.A) / 1000
loop.Kw = float32(math.Round(kw*1000) / 1000) loop.Kw = float32(math.Round(kw*1000) / 1000)
if i < scanLoopCount { if alarmDisplayEnabled && i < scanLoopCount {
switch i { switch i {
case 0: case 0:
loop.Faults = m9z.BuildLoopFaults(uint(i+1), 0x01, "01 00") loop.Faults = m9z.BuildLoopFaults(uint(i+1), 0x01, "01 00")

@ -76,4 +76,9 @@ func TestBuildDemoDeviceStatus2IncludesAlarmDisplayConfig(t *testing.T) {
if status.AlarmDisplayEnabled { if status.AlarmDisplayEnabled {
t.Fatal("status.AlarmDisplayEnabled = true, want false") t.Fatal("status.AlarmDisplayEnabled = true, want false")
} }
for _, loop := range status.Loops {
if loop.HasFault || loop.FaultMsg != "" || len(loop.Faults) > 0 {
t.Fatalf("loop %d still has fault data when alarm display disabled", loop.Index)
}
}
} }

Loading…
Cancel
Save