-
Notifications
You must be signed in to change notification settings - Fork 0
/
threshold.go
103 lines (81 loc) · 2.33 KB
/
threshold.go
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package models
import (
models "github.com/SKF/go-pas-client/internal/models"
"github.com/SKF/go-utility/v2/uuid"
)
type Threshold struct {
NodeID uuid.UUID
ThresholdType ThresholdType
Overall *Overall
RateOfChange *RateOfChange
Inspection *Inspection
FullScale *float64
BandAlarms []BandAlarm
HALAlarms []HALAlarm
}
func (t *Threshold) FromInternal(internal models.ModelsGetPointAlarmThresholdResponse) (err error) {
if t == nil {
return
}
t.ThresholdType = ThresholdTypeNone
if internal.Overall != nil {
t.Overall = new(Overall)
t.Overall.FromInternal(internal.Overall)
}
if internal.RateOfChange != nil {
t.RateOfChange = new(RateOfChange)
t.RateOfChange.FromInternal(internal.RateOfChange)
}
if internal.Inspection != nil {
t.Inspection = new(Inspection)
t.Inspection.FromInternal(internal.Inspection)
}
t.FullScale = internal.FullScale
t.BandAlarms = make([]BandAlarm, len(internal.BandAlarms))
t.HALAlarms = make([]HALAlarm, len(internal.HalAlarms))
if internal.NodeID != nil {
t.NodeID = uuid.UUID(internal.NodeID.String())
if err = t.NodeID.Validate(); err != nil {
return
}
}
if internal.ThresholdType != nil {
t.ThresholdType = ThresholdType(*internal.ThresholdType)
}
for i, bandAlarm := range internal.BandAlarms {
t.BandAlarms[i].FromInternal(bandAlarm)
}
for i, halAlarm := range internal.HalAlarms {
t.HALAlarms[i].FromInternal(halAlarm)
}
return nil
}
func (t Threshold) ToInternal() models.ModelsSetPointAlarmThresholdRequest {
thresholdType := int32(t.ThresholdType)
threshold := models.ModelsSetPointAlarmThresholdRequest{
Origin: nil,
ThresholdType: &thresholdType,
FullScale: t.FullScale,
Overall: nil,
RateOfChange: nil,
Inspection: nil,
BandAlarms: make([]*models.ModelsBandAlarm, len(t.BandAlarms)),
HalAlarms: make([]*models.ModelsHALAlarm, len(t.HALAlarms)),
}
if t.Overall != nil {
threshold.Overall = t.Overall.ToInternal()
}
if t.RateOfChange != nil {
threshold.RateOfChange = t.RateOfChange.ToInternal()
}
if t.Inspection != nil {
threshold.Inspection = t.Inspection.ToInternal()
}
for i, bandAlarm := range t.BandAlarms {
threshold.BandAlarms[i] = bandAlarm.ToInternal()
}
for i, halAlarm := range t.HALAlarms {
threshold.HalAlarms[i] = halAlarm.ToInternal()
}
return threshold
}