|
|
|
|
@ -155,11 +155,12 @@ func getDeviceStatus2Real(rpc towgo.JsonRpcConnection) {
|
|
|
|
|
}
|
|
|
|
|
d := new(DeviceStatus)
|
|
|
|
|
d.DeviceStatus = *read
|
|
|
|
|
loopCount := configuredLoopCount()
|
|
|
|
|
d.ScanDeviceCount = loopCount
|
|
|
|
|
loops := make([]DeviceStatusLoop, loopCount)
|
|
|
|
|
scanLoopCount := configuredLoopCount()
|
|
|
|
|
displayLoopCount := monitorDisplayLoopCount()
|
|
|
|
|
d.ScanDeviceCount = scanLoopCount
|
|
|
|
|
loops := make([]DeviceStatusLoop, displayLoopCount)
|
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
|
for i := 0; i < loopCount; i++ {
|
|
|
|
|
for i := 0; i < displayLoopCount; i++ {
|
|
|
|
|
idx := i
|
|
|
|
|
wg.Add(1)
|
|
|
|
|
go func() {
|
|
|
|
|
@ -175,11 +176,13 @@ func getDeviceStatus2Real(rpc towgo.JsonRpcConnection) {
|
|
|
|
|
loop.A = parametersRead.DCCurrent
|
|
|
|
|
kw := float64(loop.V*loop.A) / 1000
|
|
|
|
|
loop.Kw = float32(math.Round(kw*1000) / 1000)
|
|
|
|
|
if idx < scanLoopCount {
|
|
|
|
|
loop.Faults = m9z.BuildLoopFaults(uint(idx+1), parametersRead.AlarmStatus, parametersRead.AlarmCode)
|
|
|
|
|
loop.HasFault = len(loop.Faults) > 0
|
|
|
|
|
loop.FaultMsg = joinLoopFaultMessages(loop.Faults)
|
|
|
|
|
loop.FaultCode = joinLoopFaultCodes(loop.Faults)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
loops[idx] = loop
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
@ -191,7 +194,7 @@ func getDeviceStatus2Real(rpc towgo.JsonRpcConnection) {
|
|
|
|
|
return d.Loops[i].Index < d.Loops[j].Index
|
|
|
|
|
})
|
|
|
|
|
for _, loop := range d.Loops {
|
|
|
|
|
if loop.HasFault {
|
|
|
|
|
if loop.HasFault && loop.Index < scanLoopCount {
|
|
|
|
|
recordLoopFaults(cuid, uint(loop.Index+1), loop.V, loop.Faults)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -200,14 +203,15 @@ func getDeviceStatus2Real(rpc towgo.JsonRpcConnection) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func buildDemoDeviceStatus2() *DeviceStatus {
|
|
|
|
|
const loopCount = 10
|
|
|
|
|
displayLoopCount := monitorDisplayLoopCount()
|
|
|
|
|
scanLoopCount := configuredLoopCount()
|
|
|
|
|
d := &DeviceStatus{
|
|
|
|
|
ScanDeviceCount: loopCount,
|
|
|
|
|
Loops: make([]DeviceStatusLoop, loopCount),
|
|
|
|
|
ScanDeviceCount: scanLoopCount,
|
|
|
|
|
Loops: make([]DeviceStatusLoop, displayLoopCount),
|
|
|
|
|
}
|
|
|
|
|
d.Mode = 0
|
|
|
|
|
d.DeviceTime = time.Now().UTC()
|
|
|
|
|
for i := 0; i < loopCount; i++ {
|
|
|
|
|
for i := 0; i < displayLoopCount; i++ {
|
|
|
|
|
relayOpen := i%2 == 0
|
|
|
|
|
pwm := uint8(35 + i*5)
|
|
|
|
|
d.Relays[i] = relayOpen
|
|
|
|
|
@ -226,6 +230,7 @@ func buildDemoDeviceStatus2() *DeviceStatus {
|
|
|
|
|
kw := float64(loop.V*loop.A) / 1000
|
|
|
|
|
loop.Kw = float32(math.Round(kw*1000) / 1000)
|
|
|
|
|
|
|
|
|
|
if i < scanLoopCount {
|
|
|
|
|
switch i {
|
|
|
|
|
case 0:
|
|
|
|
|
loop.Faults = m9z.BuildLoopFaults(uint(i+1), 0x01, "01 00")
|
|
|
|
|
@ -238,6 +243,7 @@ func buildDemoDeviceStatus2() *DeviceStatus {
|
|
|
|
|
default:
|
|
|
|
|
loop.Faults = m9z.BuildLoopFaults(uint(i+1), 0x02, "02 00")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
loop.HasFault = len(loop.Faults) > 0
|
|
|
|
|
loop.FaultMsg = joinLoopFaultMessages(loop.Faults)
|
|
|
|
|
loop.FaultCode = joinLoopFaultCodes(loop.Faults)
|
|
|
|
|
|