Changes
[iotcloud.git] / version2 / src / java / light_fan_embed_benchmark / LightsController.java
1 import iotcloud.*;
2 import java.util.*;
3
4 class LightsController {
5
6     public static void main(String[] args) throws Exception {
7
8
9         // Bulb 1
10         byte[] bulbMacAdd1 = new byte[8];
11         bulbMacAdd1[0] = (byte)0xD0;
12         bulbMacAdd1[1] = (byte)0x73;
13         bulbMacAdd1[2] = (byte)0xD5;
14         bulbMacAdd1[3] = (byte)0x11;
15         bulbMacAdd1[4] = (byte)0x42;
16         bulbMacAdd1[5] = (byte)0xE5;
17         bulbMacAdd1[6] = (byte)0x00;
18         bulbMacAdd1[7] = (byte)0x00;
19
20         IoTDeviceAddress devAddr1 = new IoTDeviceAddress("192.168.2.216", 56700, 56700, false, false);
21         IoTUDP udp1 = new IoTUDP(devAddr1);
22         LightBulb bulb1 = new LifxLightBulb(udp1, bulbMacAdd1);
23
24
25
26         byte[] bulbMacAdd2 = new byte[8];
27         bulbMacAdd2[0] = (byte)0xD0;
28         bulbMacAdd2[1] = (byte)0x73;
29         bulbMacAdd2[2] = (byte)0xD5;
30         bulbMacAdd2[3] = (byte)0x12;
31         bulbMacAdd2[4] = (byte)0x8E;
32         bulbMacAdd2[5] = (byte)0x30;
33         bulbMacAdd2[6] = (byte)0x00;
34         bulbMacAdd2[7] = (byte)0x00;
35
36         IoTDeviceAddress devAddr2 = new IoTDeviceAddress("192.168.2.126", 56701, 56700, false, false);
37         IoTUDP udp2 = new IoTUDP(devAddr2);
38         LightBulb bulb2 = new LifxLightBulb(udp2, bulbMacAdd2);
39
40
41
42         byte[] bulbMacAdd3 = new byte[8];
43         bulbMacAdd3[0] = (byte)0xD0;
44         bulbMacAdd3[1] = (byte)0x73;
45         bulbMacAdd3[2] = (byte)0xD5;
46         bulbMacAdd3[3] = (byte)0x02;
47         bulbMacAdd3[4] = (byte)0x41;
48         bulbMacAdd3[5] = (byte)0xDA;
49         bulbMacAdd3[6] = (byte)0x00;
50         bulbMacAdd3[7] = (byte)0x00;
51
52         IoTDeviceAddress devAddr3 = new IoTDeviceAddress("192.168.2.232", 56702, 56700, false, false);
53         IoTUDP udp3 = new IoTUDP(devAddr3);
54         LightBulb bulb3 = new LifxLightBulb(udp3, bulbMacAdd3);
55
56
57         List<LightBulb> bulbs = new ArrayList<LightBulb>();
58         bulbs.add(bulb1);
59         bulbs.add(bulb2);
60         bulbs.add(bulb3);
61
62
63         String a1 = "bulb1";
64         String a2 = "bulb2";
65         String a3 = "bulb3";
66
67         IoTString ia1 = new IoTString(a1);
68         IoTString ia2 = new IoTString(a2);
69         IoTString ia3 = new IoTString(a3);
70
71
72         List<IoTString> keys = new ArrayList<IoTString>();
73         keys.add(ia1);
74         keys.add(ia2);
75         keys.add(ia3);
76
77
78         String valueA = "on";
79         IoTString iValueA = new IoTString(valueA);
80
81
82         String pingTimerKey = "bulbController";
83         IoTString ipingTimerKey = new IoTString(pingTimerKey);
84
85
86
87         System.out.println("Starting System");
88         int counter = 0;
89
90
91         Table t1 = new Table("http://dc-6.calit2.uci.edu/test.iotcloud/", "reallysecret", 321, -1);
92         try {
93             
94             t1.rebuild();
95         } catch (Error e) {
96
97             e.printStackTrace();
98             for (int i = 0; i < 3; i++) {
99                 bulbs.get(i).setColor(0, 100, 100);
100             }
101
102
103
104             while (true) {
105                 for (int i = 0; i < 3; i++) {
106                     bulbs.get(i).turnOff();
107                 }
108                 Thread.sleep(1000);
109
110                 for (int i = 0; i < 3; i++) {
111                     bulbs.get(i).turnOn();
112                 }
113                 Thread.sleep(1000);
114             }
115         }
116
117
118
119
120
121         while (true) {
122
123             try {
124
125                 System.out.println("Loop");
126
127                 String pingTimer = Long.toString(System.currentTimeMillis());
128                 IoTString ipingTimer = new IoTString(pingTimer);
129
130                 t1.update();
131                 t1.startTransaction();
132                 t1.addKV(ipingTimerKey, ipingTimer);
133                 t1.commitTransaction();
134
135
136
137
138
139
140
141                 for (int i = 0; i < 3; i++) {
142                     IoTString testValA1 = t1.getCommitted(keys.get(i));
143                     if ((testValA1 != null) && (testValA1.equals(iValueA) == true)) {
144                         bulbs.get(i).turnOn();
145                     } else {
146                         bulbs.get(i).turnOff();
147                     }
148                 }
149
150                 Thread.sleep(1000);
151
152             } catch (Error e) {
153
154                 e.printStackTrace();
155                 for (int i = 0; i < 3; i++) {
156                     bulbs.get(i).setColor(0, 100, 100);
157                 }
158
159
160
161                 while (true) {
162                     for (int i = 0; i < 3; i++) {
163                         bulbs.get(i).turnOff();
164                     }
165                     Thread.sleep(1000);
166
167                     for (int i = 0; i < 3; i++) {
168                         bulbs.get(i).turnOn();
169                     }
170                     Thread.sleep(1000);
171                 }
172             }
173         }
174     }
175 }