Revision 6 hci/trunk/eneraptor-web-app/grails-app/controllers/com/eneraptor/hci/SysStateController.groovy

View differences:

SysStateController.groovy
1 1
package com.eneraptor.hci
2 2

  
3 3
class SysStateController {
4

  
5
    def main = { }
4

  
5
	def reportService
6
	def hciLogicCommService
6 7
	
8
    def main = {
9
		
10
		List inDevices = DeviceInfo.findAllByInputDevice(true, [sort:'friendlyName', order:'asc'])
11
		List inDevicesData = new ArrayList()
12
		inDevices.each {
13
			Map inDeviceDataEntry = new HashMap()
14
			inDeviceDataEntry['friendlyName'] = it.friendlyName
15
			inDeviceDataEntry['icon'] = it.iconPath
16
			inDeviceDataEntry['loggedData'] = LoggedData.findByDeviceId(it.deviceId, [sort:'dateRecieved', order:'desc'])	
17
			inDevicesData << inDeviceDataEntry
18
		}
19
		
20
		List outDevices = DeviceInfo.findAllByOutputDevice(true, [sort:'friendlyName', order:'asc'])
21
		List outDevicesData = new ArrayList()
22
		outDevices.each {
23
			Map outDeviceDataEntry = new HashMap()
24
			outDeviceDataEntry['friendlyName'] = it.friendlyName
25
			outDeviceDataEntry['icon'] = it.iconPath
26
			outDeviceDataEntry['loggedData'] = LoggedData.findByDeviceId(it.deviceId, [sort:'dateRecieved', order:'desc'])
27
			outDevicesData << outDeviceDataEntry
28
		}
29
		
30
		[inDevicesData: inDevicesData, outDevicesData: outDevicesData]
31
		
32
	}
33
	
34
	def measure = {
35
		
36
		List inDevices = DeviceInfo.findAllByInputDevice(true, [sort:'friendlyName', order:'asc'])
37
		List inDevicesData = new ArrayList()
38
		inDevices.each {
39
			Map inDeviceDataEntry = new HashMap()
40
			inDeviceDataEntry['deviceId'] = it.deviceId
41
			inDeviceDataEntry['friendlyName'] = it.friendlyName
42
			inDeviceDataEntry['icon'] = it.iconPath
43
			inDeviceDataEntry['loggedData'] = LoggedData.findByDeviceId(it.deviceId, [sort:'dateRecieved', order:'desc'])
44
			inDevicesData << inDeviceDataEntry
45
		}
46
		
47
		[inDevicesData: inDevicesData]
48
		
49
    }
50
	
51
	def measureUpdate = {
52
		
53
		List devices = new ArrayList()
54
		
55
		DeviceInfo.findAllByInputDevice(true).each {
56
			if(params[it.deviceId] == "on")
57
				devices << it.deviceId
58
		}
59
		
60
		def output = "";
61
		
62
		if(devices.size == 0) {
63
			flash['errors'] = "<p>No device was selected. At least one device must be selected.</p>"
64
			redirect(action: 'measure')
65
			return false
66
		}
67
		
68
		output += reportService.println("Trying to update measurements manually for devices")
69
		devices.each {
70
			output += reportService.println(" - " + it)
71
		}
72
		output += reportService.println("Generating request xml")
73
		
74
		// generate request xml
75
		def reqXML = "<todo />"
76
		
77
		output += reportService.println("Request xml generated")
78
		output += reportService.println("Sending request")
79
		
80
		// send request
81
		Map rspXML = hciLogicCommService.getReplyToRequest(reqXML)
82
		
83
		if(rspXML['status'] == "error") {
84
			output += reportService.println("<span style='color:red;'>Error: " + rspXML['content'] + "</span>")
85
		} else {
86
			output += reportService.println("<span style='color:red;'>Error: implementation missing - TODO.</span>")
87
		}
88
		
89
		[errorExplanation: output]
90
		
91
	}
92
	
93
	def actions = {
94
		
95
		List outDevices = DeviceInfo.findAllByOutputDevice(true, [sort:'friendlyName', order:'asc'])
96
		List outDevicesData = new ArrayList()
97
		outDevices.each {
98
			Map outDeviceDataEntry = new HashMap()
99
			outDeviceDataEntry['deviceId'] = it.deviceId
100
			outDeviceDataEntry['friendlyName'] = it.friendlyName
101
			outDeviceDataEntry['icon'] = it.iconPath
102
			outDeviceDataEntry['loggedData'] = LoggedData.findByDeviceId(it.deviceId, [sort:'dateRecieved', order:'desc'])
103
			outDevicesData << outDeviceDataEntry
104
		}
105
		
106
		[outDevicesData: outDevicesData]
107
		
108
    }
109
	
7 110
}

Also available in: Unified diff