Statistics
| Revision:

root / hci / trunk / eneraptor-web-app / grails-app / controllers / com / eneraptor / hci / SysStateController.groovy @ 66

History | View | Annotate | Download (3.76 KB)

1
package com.eneraptor.hci
2

    
3
class SysStateController {
4

    
5
        def reportService
6
        def hciLogicCommService
7
        
8
    def main = {
9
                
10
                def crit1 = DeviceInfo.createCriteria()
11
                List inDevices = crit1 {
12
                        and {
13
                                eq("inputDevice",true)
14
                                eq("hwSet",session.hwSet)
15
                        }
16
                        order("friendlyName","asc")
17
                }
18
                
19
                List inDevicesData = new ArrayList()
20
                inDevices.each {
21
                        Map inDeviceDataEntry = new HashMap()
22
                        inDeviceDataEntry['friendlyName'] = it.friendlyName
23
                        inDeviceDataEntry['icon'] = it.iconPath
24
                        inDeviceDataEntry['loggedData'] = LoggedData.findByDeviceId(it.deviceId, [sort:'dateRecieved', order:'desc'])        
25
                        inDevicesData << inDeviceDataEntry
26
                }
27
                
28
                def crit2 = DeviceInfo.createCriteria()
29
                List outDevices = crit2 {
30
                        and {
31
                                eq("outputDevice",true)
32
                                eq("hwSet",session.hwSet)
33
                        }
34
                        order("friendlyName","asc")
35
                }
36

    
37
                List outDevicesData = new ArrayList()
38
                outDevices.each {
39
                        Map outDeviceDataEntry = new HashMap()
40
                        outDeviceDataEntry['friendlyName'] = it.friendlyName
41
                        outDeviceDataEntry['icon'] = it.iconPath
42
                        outDeviceDataEntry['loggedData'] = LoggedData.findByDeviceId(it.deviceId, [sort:'dateRecieved', order:'desc'])
43
                        outDevicesData << outDeviceDataEntry
44
                }
45
                
46
                [inDevicesData: inDevicesData, outDevicesData: outDevicesData]
47
                
48
        }
49
        
50
        def measure = {
51
                
52
                def crit1 = DeviceInfo.createCriteria()
53
                List inDevices = crit1 {
54
                        and {
55
                                eq("inputDevice",true)
56
                                eq("hwSet",session.hwSet)
57
                        }
58
                        order("friendlyName","asc")
59
                }
60
                
61
                List inDevicesData = new ArrayList()
62
                inDevices.each {
63
                        Map inDeviceDataEntry = new HashMap()
64
                        inDeviceDataEntry['deviceId'] = it.deviceId
65
                        inDeviceDataEntry['friendlyName'] = it.friendlyName
66
                        inDeviceDataEntry['icon'] = it.iconPath
67
                        inDeviceDataEntry['loggedData'] = LoggedData.findByDeviceId(it.deviceId, [sort:'dateRecieved', order:'desc'])
68
                        inDevicesData << inDeviceDataEntry
69
                }
70
                
71
                [inDevicesData: inDevicesData]
72
                
73
    }
74
        
75
        def measureUpdate = {
76
                
77
                List devices = new ArrayList()
78
                
79
                DeviceInfo.findAllByInputDevice(true).each {
80
                        if(params[it.deviceId] == "on")
81
                                devices << it.deviceId
82
                }
83
                
84
                def output = "";
85
                
86
                if(devices.size == 0) {
87
                        flash['errors'] = "<p>No device was selected. At least one device must be selected.</p>"
88
                        redirect(action: 'measure')
89
                        return false
90
                }
91
                
92
                output += reportService.println("Trying to update measurements manually for devices")
93
                devices.each {
94
                        output += reportService.println(" - " + it)
95
                }
96
                output += reportService.println("Generating request xml")
97
                
98
                // generate request xml
99
                def reqXML = "<todo />"
100
                
101
                output += reportService.println("Request xml generated")
102
                output += reportService.println("Sending request")
103
                
104
                // send request
105
                Map rspXML = hciLogicCommService.getReplyToRequest(reqXML)
106
                
107
                if(rspXML['status'] == "error") {
108
                        output += reportService.println("<span style='color:red;'>Error: " + rspXML['content'] + "</span>")
109
                } else {
110
                        output += reportService.println("<span style='color:red;'>Error: implementation missing - TODO.</span>")
111
                }
112
                
113
                [errorExplanation: output]
114
                
115
        }
116
        
117
        def actions = {
118
                
119
                def crit2 = DeviceInfo.createCriteria()
120
                List outDevices = crit2 {
121
                        and {
122
                                eq("outputDevice",true)
123
                                eq("hwSet",session.hwSet)
124
                        }
125
                        order("friendlyName","asc")
126
                }
127
                
128
                List outDevicesData = new ArrayList()
129
                outDevices.each {
130
                        Map outDeviceDataEntry = new HashMap()
131
                        outDeviceDataEntry['deviceId'] = it.deviceId
132
                        outDeviceDataEntry['friendlyName'] = it.friendlyName
133
                        outDeviceDataEntry['icon'] = it.iconPath
134
                        outDeviceDataEntry['loggedData'] = LoggedData.findByDeviceId(it.deviceId, [sort:'dateRecieved', order:'desc'])
135
                        outDevicesData << outDeviceDataEntry
136
                }
137
                
138
                [outDevicesData: outDevicesData]
139
                
140
    }
141
        
142
}