#include "LifxLightBulb.cpp"
#include "Iterator.hpp"
-Lifxtest::Lifxtest() {
+// External create, destroy, and init functions
+extern "C" void* createLifxtest(void** params) {
+ // Arguments: IoTSet<void*>* lifx_light_bulb
+ return new Lifxtest((IoTSet<void*>*) params[0]);
+}
+
+
+extern "C" void destroyLifxtest(void* t) {
+ Lifxtest* lt = (Lifxtest*) t;
+ delete lt;
+}
+
+
+extern "C" void initLifxtest(void* t) {
+ Lifxtest* lt = (Lifxtest*) t;
+ lt->init();
}
-/*Lifxtest::Lifxtest(IoTSet<LightBulbTest*> _lifx_light_bulb) {
+Lifxtest::Lifxtest() {
+ log.open("Lifxtest_object_cpp.log");
+ log << "lifx_light_bulb initialized!" << endl;
+}
+Lifxtest::Lifxtest(IoTSet<void*>* _lifx_light_bulb) {
+
+ log.open("Lifxtest_object_cpp.log");
lifx_light_bulb = _lifx_light_bulb;
-}*/
+ log << "lifx_light_bulb initialized!" << endl;
+}
Lifxtest::Lifxtest(void** args) {
- //lifx_light_bulb = *(IoTSet<LightBulbTest*>*) args[0];
- lifx_light_bulb = *(IoTSet<LightBulb*>*) args[0];
+ log.open("Lifxtest_object_cpp.log");
+ lifx_light_bulb = (IoTSet<void*>*) args[0];
+ log << "lifx_light_bulb initialized!" << endl;
}
+
Lifxtest::~Lifxtest() {
}
void Lifxtest::init() {
- //unordered_set<LightBulbTest*>* bulbSet = lifx_light_bulb.values();
- unordered_set<LightBulb*>* bulbSet = lifx_light_bulb.values();
- //for(LightBulbTest* lifx : *bulbSet) {
- for(LightBulb* lifx : *bulbSet) {
-
+ unordered_set<void*>* bulbSet = lifx_light_bulb->values();
+ //for (unordered_set<void*>::const_iterator itr = bulbSet->begin(); itr != bulbSet->end(); ++itr) {
+ log << "Get into Lifxtest init()!" << endl;
+ for (auto itr = bulbSet->begin(); itr != bulbSet->end(); ++itr) {
+ log << "Iteration init()!" << endl;
+ //LightBulb* lifx = (LightBulb*) *itr;
+ LightBulbTest* lifx = (LightBulbTest*) *itr;
+ log << "Getting object!" << endl;
lifx->init();
+ log << "Executing init!" << endl;
this_thread::sleep_for (chrono::milliseconds(1000));
- for (int i = 0; i < 1; i++) {
+ for (int i = 0; i < 5; i++) {
lifx->turnOff();
- cout << "Turning off!" << endl;
+ //cout << "Turning off!" << endl;
+ log << "Turning off!" << endl;
this_thread::sleep_for (chrono::milliseconds(1000));
lifx->turnOn();
- cout << "Turning on!" << endl;
+ //cout << "Turning on!" << endl;
+ log << "Turning on!" << i << endl;
this_thread::sleep_for (chrono::milliseconds(1000));
}
+
-/* for (int i = 2500; i < 9000; i += 100) {
- cout << "Adjusting Temp: " << i << endl;
+ for (int i = 2500; i < 9000; i += 100) {
+ //cout << "Adjusting Temp: " << i << endl;
+ log << "Adjusting Temp: " << i << endl;
lifx->setTemperature(i);
this_thread::sleep_for (chrono::milliseconds(100));
}
for (int i = 9000; i > 2500; i -= 100) {
- cout << "Adjusting Temp: " << i << endl;
+ //cout << "Adjusting Temp: " << i << endl;
+ log << "Adjusting Temp: " << i << endl;
lifx->setTemperature(i);
this_thread::sleep_for (chrono::milliseconds(100));
}
for (int i = 100; i > 0; i -= 10) {
- cout << "Adjusting Brightness: " << i << endl;
+ //cout << "Adjusting Brightness: " << i << endl;
+ log << "Adjusting Brightness: " << i << endl;
lifx->setColor(lifx->getHue(), lifx->getSaturation(), i);
this_thread::sleep_for (chrono::milliseconds(500));
}
for (int i = 0; i < 100; i += 10) {
- cout << "Adjusting Brightness: " << i << endl;
+ //cout << "Adjusting Brightness: " << i << endl;
+ log << "Adjusting Brightness: " << i << endl;
lifx->setColor(lifx->getHue(), lifx->getSaturation(), i);
this_thread::sleep_for (chrono::milliseconds(500));
- }*/
+ }
+ lifx->turnOff();
}
+
+ log << "End of iteration.. closing!" << endl;
+ log.close();
+ while(true) { } // Testing infinite loop - will need to do "pkill IoTSlave"
}
-int main(int argc, char *argv[])
+/*int main(int argc, char *argv[])
{
// LightBulb #1
string macAddress1 = "D073D5128E300000";
string devIPAddress1 = "192.168.2.126";
IoTDeviceAddress* devAddress1 = new IoTDeviceAddress(devIPAddress1, 12345, 56700, false, false);
- unordered_set<IoTDeviceAddress*>* myset1 = new unordered_set<IoTDeviceAddress*>();
+ unordered_set<void*>* myset1 = new unordered_set<void*>();
myset1->insert(devAddress1);
- IoTSet<IoTDeviceAddress*>* setDevAddress1 = new IoTSet<IoTDeviceAddress*>(*myset1);
+ IoTSet<void*>* setDevAddress1 = new IoTSet<void*>(myset1);
LifxLightBulb *llb1 = new LifxLightBulb(setDevAddress1, macAddress1);
//cout << "Generated LifxLightBulb object!" << endl;
string macAddress2 = "D073D50241DA0000";
string devIPAddress2 = "192.168.2.232";
IoTDeviceAddress* devAddress2 = new IoTDeviceAddress(devIPAddress2, 12346, 56700, false, false);
- unordered_set<IoTDeviceAddress*>* myset2 = new unordered_set<IoTDeviceAddress*>();
+ unordered_set<void*>* myset2 = new unordered_set<void*>();
myset2->insert(devAddress2);
- IoTSet<IoTDeviceAddress*>* setDevAddress2 = new IoTSet<IoTDeviceAddress*>(*myset2);
+ IoTSet<void*>* setDevAddress2 = new IoTSet<void*>(myset2);
LifxLightBulb *llb2 = new LifxLightBulb(setDevAddress2, macAddress2);
// Set of lightbulbs
- unordered_set<LightBulb*>* setLb = new unordered_set<LightBulb*>();
+ unordered_set<void*>* setLb = new unordered_set<void*>();
setLb->insert(llb1);
setLb->insert(llb2);
- IoTSet<LightBulb*>* lbSet = new IoTSet<LightBulb*>(*setLb);
+ IoTSet<void*>* lbSet = new IoTSet<void*>(setLb);
- void* args[1];
- args[0] = (void*) lbSet;
- Lifxtest *lt = new Lifxtest(args);
+ //void* args[1];
+ //args[0] = (void*) lbSet;
+ //Lifxtest *lt = new Lifxtest(args);
+ Lifxtest *lt = new Lifxtest(lbSet);
lt->init();
//delete llb1;
delete setDevAddress2;
delete setLb;
delete lbSet;
- //delete llb1;
- //delete llb2;
return 0;
}
-
+*/