Alejandro Acuña
2024-09-16 adba74e107bcda9e1cb510bc14364b02e781baef
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
package Barrier;
 
import art.library.model.devices.Device;
import art.library.model.devices.DeviceGraphicsRuntime;
import art.library.model.devices.DeviceStatus;
import com.kitfox.svg.SVGDiagram;
 
public class DeviceGraphicsRuntime_Barrier_status_aspect extends DeviceGraphicsRuntime
{
 
    public DeviceGraphicsRuntime_Barrier_status_aspect(art.library.model.devices.Device device, SVGDiagram diagram)
    {
        super(device, diagram);
    }
 
    private boolean flashOn = false;
 
    public void timer()
    {
        flashOn = !flashOn;
        status();
    }
 
    public void status()
    {
        Device device = getDevice();
        String color1 = "#000000";
        String color2 = "#000000";
        art.library.model.devices.barrier.BarrierRealtime realtime = (art.library.model.devices.barrier.BarrierRealtime) device.getDeviceRealtime();
        switch (device.getStatus())
        {
            case DeviceStatus.STATUS_ONLINE:
                color1 = "#00FF00";
                color2 = "#007C00";
                break;
            case DeviceStatus.STATUS_WARNING:
                color1 = "#FFFF00";
                color2 = "#7C7C00";
                break;
            case DeviceStatus.STATUS_ALARM:
                color1 = "#FF0000";
                color2 = "#7C0000";
                break;
            case DeviceStatus.STATUS_INVALID:
                color1 = "#B97A57";
                color2 = "#5A3B2A";
                break;
            case DeviceStatus.STATUS_DISABLE:
                color1 = "#7C7C7C";
                color2 = "#3E3E3E";
                break;
            case DeviceStatus.STATUS_SIMULATION:
                color1 = "#0000FF";
                color2 = "#00007C";
                break;
            case DeviceStatus.STATUS_OFFLINE:
                color1 = "#c000c0";
                color2 = "#7C007C";
                break;
            case DeviceStatus.STATUS_UNKNOWN:
                color1 = "#c000c0";
                color2 = "#7C007C";
                break;
        }
        setAttribute("Barrier base 1", "fill", color1);
        setAttribute("Barrier base 2", "fill", color2);
        setAttribute("Position up", "display", "none");
        setAttribute("Position down", "display", "none");
        setAttribute("Position opening", "display", "none");
        setAttribute("Position closing", "display", "none");
        setAttribute("Lock unlock", "display", "none");
        setAttribute("Lock lock", "display", "none");
        setAttribute("Lock unknown", "display", "none");
        setAttribute("Loop input", "display", "none");
        setAttribute("Loop input unknown", "display", "none");
        setAttribute("Loop output", "display", "none");
        setAttribute("Loop output unknown", "display", "none");
        setAttribute("Loop output", "display", "none");
        setAttribute("Loop output unknown", "display", "none");
        setAttribute("Traffic light green", "display", "none");
        setAttribute("Traffic light yellow", "display", "none");
        setAttribute("Traffic light red", "display", "none");
        setAttribute("Traffic light unknown", "display", "none");
        if (realtime == null || device.getDeviceStatus().status == DeviceStatus.STATUS_UNKNOWN || device.getDeviceStatus().status == DeviceStatus.STATUS_OFFLINE)
        {
            setAttribute("Traffic light unknown", "display", "inline");
            setAttribute("Traffic light unknown", "fill", color2);
            setAttribute("Barrier base 1", "fill", "#FF00FF");
            setAttribute("Barrier base 2", "fill", "#800080");
            setAttribute("Loop output", "display", "none");
            setAttribute("Loop input", "display", "none");
            setAttribute("Loop input unknown", "display", "inline");
            setAttribute("Loop output unknown", "display", "inline");
            setAttribute("Lock unknown", "display", "inline");
            setAttribute("Lock unknown", "fill", color2);
            return;
        }
        switch (realtime.itc != null ? realtime.itc.position : realtime.general.position)
        {
            case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.POSITION_UP:
                setAttribute("Position up", "display", "inline");
                break;
            case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.POSITION_DOWN:
                setAttribute("Position down", "display", "inline");
                break;
            case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.POSITION_OPENING:
                setAttribute("Position opening", "display", "inline");
                break;
            case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.POSITION_CLOSING:
                setAttribute("Position closing", "display", "inline");
                break;
            case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.POSITION_UNKNOWN:
                setAttribute("Barrier base 1", "fill", "#FF00FF");
                setAttribute("Barrier base 2", "fill", "#800080");
                break;
        }
        switch (realtime.itc != null ? realtime.itc.lock : realtime.general.lock)
        {
            case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.LOCK_LOCK:
                setAttribute("Lock lock", "display", "inline");
                break;
            case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.LOCK_UNLOCK:
                setAttribute("Lock unlock", "display", "inline");
                break;
            case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.LOCK_UNKNOWN:
                setAttribute("Lock unknown", "display", "inline");
                setAttribute("Lock unknown", "fill", color2);
                break;
        }
        if (realtime.itc != null)
        {
            switch (realtime.itc.loopInput)
            {
                case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.LOOP_ACTIVE:
                    setAttribute("Loop input", "display", "inline");
                    break;
                case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.LOOP_UNKNOWN:
                    setAttribute("Loop input unknown", "display", "inline");
                    setAttribute("Loop input unknown", "fill", color2);
                    break;
            }
            switch (realtime.itc.loopOutput)
            {
                case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.LOOP_ACTIVE:
                    setAttribute("Loop output", "display", "inline");
                    break;
                case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.LOOP_UNKNOWN:
                    setAttribute("Loop output unknown", "display", "inline");
                    setAttribute("Loop output unknown", "fill", color2);
                    break;
            }
            switch (realtime.itc.trafficLight)
            {
                case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.TRAFFIC_LIGHT_GREEN:
                    setAttribute("Traffic light green", "display", "inline");
                    break;
                case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.TRAFFIC_LIGHT_YELLOW:
                    setAttribute("Traffic light yellow", "display", "inline");
                    break;
                case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.TRAFFIC_LIGHT_RED:
                    setAttribute("Traffic light red", "display", "inline");
                    break;
                case art.library.model.devices.barrier.realtime.BarrierRealtimeITC.TRAFFIC_LIGHT_UNKNOWN:
                    setAttribute("Traffic light unknown", "display", "inline");
                    setAttribute("Traffic light unknown", "fill", color2);
                    break;
            }
        }
        for (int i = 0; i < device.getServerityAlarm(); i++)
        {
            setAttribute("Alarm" + i, "display", "none");
        }
    }
 
//    java.io.StringWriter sw = new java.io.StringWriter();
//    art.library.gui.flat.FlatDialog.showDialog(null, "Error", e.getMessage() + "\n\n" + sw.toString(), true, art.library.gui.flat.FlatDialog.DIALOG_ERROR);                        
//     
}