Core Base Classes for the Light Endpoints

Dependencies:   BufferedSerial

Dependents:   mbed_mqtt_endpoint_ublox_ethernet mbed_mqtt_endpoint_ublox_cellular mbed_nsp_endpoint_ublox_cellular mbed_nsp_endpoint_ublox_ethernet ... more

Revision:
20:f2dbbd852e08
Parent:
13:17feb3b34619
Child:
21:cfdaee0a2b50
--- a/MBEDToIOCResourceMap.cpp	Wed Feb 26 07:22:26 2014 +0000
+++ b/MBEDToIOCResourceMap.cpp	Wed Feb 26 18:59:01 2014 +0000
@@ -19,21 +19,27 @@
  #include "MBEDToIOCResourceMap.h"
  
  // default constructor
- MBEDToIOCResourceMap::MBEDToIOCResourceMap() {
-     this->m_map.clear();
+ MBEDToIOCResourceMap::MBEDToIOCResourceMap(ErrorHandler *error_handler) {
+     this->m_error_handler = error_handler;
+     for(int i=0;i<NUM_MAPPINGS;++i) this->m_map[i] = NULL;
      this->createMap();
  }
  
  // destructor
  MBEDToIOCResourceMap::~MBEDToIOCResourceMap() {
+     for(int i=0;i<NUM_MAPPINGS;++i)
+        if (this->m_map[i] != NULL) delete this->m_map[i];
  }
+ 
+ // get our error handler
+ ErrorHandler *MBEDToIOCResourceMap::logger() { return this->m_error_handler; }
        
  // lookup MBED equivalent to IOC input
  char *MBEDToIOCResourceMap::getMBEDMappedName(char *ioc_name) {
      bool found = false;
      char *mbed_name = NULL;
      
-     for(int i=0;i<this->m_map.size() && !found;++i) {
+     for(int i=0;i<NUM_MAPPINGS && !found && this->m_map[i] != NULL;++i) {
          if (strcmp(this->m_map[i]->iocName(),ioc_name) == 0) {
              found = true;
              mbed_name = this->m_map[i]->mbedName();
@@ -44,20 +50,24 @@
  
  // create our map - this MUST match the Resource Mapping found in the gateway mapping database
  void MBEDToIOCResourceMap::createMap() {
-     this->m_map.push_back(new MapEntry("Property_1","/dev/addldata"));
-     this->m_map.push_back(new MapEntry("Property_2","/dev/location"));
-     this->m_map.push_back(new MapEntry("Property_3","/dev/bat"));
-     this->m_map.push_back(new MapEntry("Property_4","/sen/I"));
-     this->m_map.push_back(new MapEntry("Property_5","/nw/ipaddr"));
-     this->m_map.push_back(new MapEntry("Property_6","/lt/0/dim","Dimming"));
-     this->m_map.push_back(new MapEntry("Property_7","/nw/eripaddr"));
-     this->m_map.push_back(new MapEntry("Property_8","/lt/0/on","EnpointStatus"));
-     this->m_map.push_back(new MapEntry("Property_9","/dev/mdl"));
-     this->m_map.push_back(new MapEntry("Property_10","/gps/int"));
-     this->m_map.push_back(new MapEntry("Property_11","/gps/fix"));
-     this->m_map.push_back(new MapEntry("Property_12","/nw/pipaddr"));
-     this->m_map.push_back(new MapEntry("Property_13","/nw/prssi"));
-     this->m_map.push_back(new MapEntry("Property_14","/sen/temp"));
-     this->m_map.push_back(new MapEntry("Property_15","/sen/V"));
-     this->m_map.push_back(new MapEntry("LOCATION","/gps/loc"));
+     int i = 0;
+     this->m_map[i++] = new MapEntry("Property_1","/dev/addldata");
+     this->m_map[i++] = new MapEntry("Property_2","/dev/location");
+     this->m_map[i++] = new MapEntry("Property_3","/dev/bat");
+     this->m_map[i++] = new MapEntry("Property_4","/sen/I");
+     this->m_map[i++] = new MapEntry("Property_5","/nw/ipaddr");
+     this->m_map[i++] = new MapEntry("Property_6","/lt/0/dim","Dimming");
+     this->m_map[i++] = new MapEntry("Property_7","/nw/eripaddr");
+     this->m_map[i++] = new MapEntry("Property_8","/lt/0/on","EnpointStatus");
+     this->m_map[i++] = new MapEntry("Property_9","/dev/mdl");
+     this->m_map[i++] = new MapEntry("Property_10","/gps/int");
+     this->m_map[i++] = new MapEntry("Property_11","/gps/fix");
+     this->m_map[i++] = new MapEntry("Property_12","/nw/pipaddr");
+     this->m_map[i++] = new MapEntry("Property_13","/nw/prssi");
+     this->m_map[i++] = new MapEntry("Property_14","/sen/temp");
+     this->m_map[i++] = new MapEntry("Property_15","/sen/V");
+     this->m_map[i++] = new MapEntry("LOCATION","/gps/loc");
+     
+     // DEBUG
+     this->logger()->log("Installed %d Resource Mappings.",i);
  }
\ No newline at end of file