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