mqtt specific components for the impact mbed endpoint library
Dependents: mbed_mqtt_endpoint_ublox_ethernet mbed_mqtt_endpoint_ublox_cellular mbed_mqtt_endpoint_nxp
Diff: EmulatedResourceFactory.cpp
- Revision:
- 5:1ba6e68bf50e
- Parent:
- 4:380d79b22468
- Child:
- 11:9ae0fe4517c1
diff -r 380d79b22468 -r 1ba6e68bf50e EmulatedResourceFactory.cpp --- a/EmulatedResourceFactory.cpp Thu Mar 27 03:52:29 2014 +0000 +++ b/EmulatedResourceFactory.cpp Thu Mar 27 17:48:38 2014 +0000 @@ -19,105 +19,18 @@ // class definition #include "EmulatedResourceFactory.h" - // MBEDEndpoint support + // MBEDEndpoint instance support #include "MBEDEndpoint.h" - - // MBED supports Battery Emulation - #include "MBEDBattery.h" - - // MBED supports Current Emulation - #include "MBEDCurrent.h" - - // MBED supports Temperature Sensing - #include "MBEDTemperature.h" - - // MBED supports GPS Emulation - #include "MBEDgps.h" - - // MBED supports RSSI Emulation - #include "MBEDrssi.h" - - // MBED supports Voltage Emulation - #include "MBEDVoltage.h" - - // MBED supports Wattage Emulation - #include "MBEDWattage.h" - - // Initializers - void init_battery(Resource *resource) { if (resource != NULL) new MBEDBattery(resource->logger(),resource); } - void init_current(Resource *resource) { if (resource != NULL) new MBEDCurrent(resource->logger(),resource); } - void init_gps(Resource *resource) { if (resource != NULL) new MBEDgps(resource->logger(),resource); } - void init_rssi(Resource *resource) { if (resource != NULL) new MBEDrssi(resource->logger(),resource); } - void init_temperature(Resource *resource) { if (resource != NULL) new MBEDTemperature(resource->logger(),resource); } - void init_voltage(Resource *resource) { if (resource != NULL) new MBEDVoltage(resource->logger(),resource); } - void init_wattage(Resource *resource) { if (resource != NULL) new MBEDWattage(resource->logger(),resource); } - // Ethernet - #include "EthernetInterface.h" - extern EthernetInterface ethernet; - - // NSP supports Light Dimming - extern void emulated_light_dimming_cb(); - - // NSP supports Light Switch - extern void emulated_light_switch_cb(); - // default constructor EmulatedResourceFactory::EmulatedResourceFactory(ErrorHandler *error_handler,void *endpoint) : ResourceFactory(error_handler,endpoint) { - this->initGPSCoords(); } // default destructor EmulatedResourceFactory::~EmulatedResourceFactory() { } - // initialize our GPS coords - void EmulatedResourceFactory::initGPSCoords() { - memset(this->m_gps_coords,0,PREFERENCE_VALUE_LEN+1); - MBEDEndpoint *endpoint = (MBEDEndpoint *)this->m_endpoint; - endpoint->preferences()->getPreference("coords",this->m_gps_coords,PREFERENCE_VALUE_LEN,ENDPOINT_GPS_COORDS); - } - - // get our GPS coords from preferences - char *EmulatedResourceFactory::getGPSCoords() { return this->m_gps_coords; } - - // create resources - void EmulatedResourceFactory::createResources(char *endpoint_name) { - // create all of the resources we expect for this endpoint - this->createResource("/dev/addldata","id:0"); - this->createResource("/dev/location",ENDPOINT_LOCATION); - this->createResource("/fw/devtype","Light"); - this->createResource("/dev/bat","5.0V",(void *)&init_battery,NULL); - this->createResource("/sen/I","0.1A",(void *)&init_current,NULL); - this->createResource("/dev/I","0.1A",(void *)&init_current,NULL); - this->createResource("/nw/ipaddr",ethernet.getIPAddress()); - this->createResource(endpoint_name,"/lt/0/dim","25",(void *)&emulated_light_dimming_cb); // Action: dim/brighten light - this->createResource("/nw/eripaddr","N/A"); - this->createResource(endpoint_name,"/lt/0/on","1",(void *)&emulated_light_switch_cb); // Action: light on/off - //this->createResource(endpoint_name,"/lt/0/ctr","1",(void *)&emulated_light_switch_cb); // Action: light on/off - this->createResource("/dev/mdl","MQTT MBED Light"); - this->createResource("/dev/mfg",PLATFORM_STRING); - this->createResource("/gps/int","60"); - this->createResource("/gps/fix","1"); - this->createResource("/nw/pipaddr","N/A"); - this->createResource("/dev/W","0.1W",(void *)&init_wattage,NULL); - this->createResource("/nw/prssi","-75",(void *)&init_rssi,NULL); - this->createResource("/sen/temp","10.0C",(void *)&init_temperature,NULL); - this->createResource("/dev/t","10.0C",(void *)&init_temperature,NULL); - this->createResource("/sen/V","5.0V",(void *)&init_voltage,NULL); - this->createResource("/dev/V","5.0V",(void *)&init_voltage,NULL); - this->createResource("/gps/loc",this->getGPSCoords(),(void *)&init_gps,NULL); - this->createResource("/ns/nspaddr","(NA)"); - this->createResource(endpoint_name,"/dev/panic","0",(void *)&emulated_light_switch_cb); // Action: light on/off - -#ifdef MAC_ADDRESS - extern char fmt_mac[RESOURCE_VALUE_LEN+1]; - this->createResource("/nw/macaddr",fmt_mac); -#else - this->createResource("/nw/macaddr","00:00:00:00:00"); -#endif - } - + // resource creators for the EmulatedResourceFactory... void EmulatedResourceFactory::createResource(char *name,char *value) { ResourceFactory::createResource(name,value); } void EmulatedResourceFactory::createResource(char *ep_name,char *name,char *value,void *cb) { ResourceFactory::createResource(ep_name,name,value,cb); } void EmulatedResourceFactory::createResource(char *name,char *value,void *io,void *notused) {