POC1.5 prototype 2 x color sensor 2 x LM75B 3 x AnalogIn 1 x accel

Dependencies:   mbed vt100

Revision:
4:aa67eddf0ab1
Parent:
3:cac964851bb6
Child:
5:eba500888787
--- a/af_utils/af_attriburtes.cpp	Mon Dec 04 02:47:38 2017 +0000
+++ b/af_utils/af_attriburtes.cpp	Tue Dec 05 00:18:45 2017 +0000
@@ -249,6 +249,7 @@
     switch(attributeId) {
     case ATTR_LINKED_TIMESTAMP: /* timestamp */
         set_time(valueLen, value) ;
+        afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         printf("timestampe = %d\n", timestamp) ;
 //        print_date(&current_time) ;
         print_time(&current_time) ;
@@ -261,6 +262,7 @@
                 display->locate(0,0) ;
                 display->putStr("System Rebooting!") ;
             }
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
             wait(1) ;
             software_reset() ;
         }
@@ -271,18 +273,17 @@
                 printf("Accel Enabled\n") ;
                 sensor[0]->reset() ;
                 sensor[0]->enable() ;
-                afero->setAttributeBool(ATTR_ACCEL_ENABLE, true) ;
             } else if (sensor[0]){
                 printf("Accel Disabled\n") ;
                 sensor[0]->disable() ;
-                afero->setAttributeBool(ATTR_ACCEL_ENABLE, false) ;
             }
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;
     case ATTR_ACCEL_INTERVAL:
         if (sensor[0]) {
             sensor[0]->setInterval((value[1] << 8) | value[0]) ;
-            afero->setAttribute(ATTR_ACCEL_INTERVAL, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;
     case ATTR_COLOR0_ENABLE: /* color0 enable */
@@ -290,17 +291,16 @@
             if (value[0]) {
                 sensor[1]->reset() ;
                 sensor[1]->enable() ;
-                afero->setAttributeBool(ATTR_COLOR0_ENABLE, true) ;
             } else {
                 sensor[1]->disable() ;
-                afero->setAttributeBool(ATTR_COLOR0_ENABLE, false) ;
             }
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;
     case ATTR_COLOR0_INTERVAL:
         if (sensor[1]) {
             sensor[1]->setInterval((value[1] << 8) | value[0]) ;
-            afero->setAttribute(ATTR_COLOR0_INTERVAL, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;    
     case ATTR_COLOR0_TRIGMODE: /* color0 config */
@@ -310,7 +310,7 @@
                 config = config | 0x06 ;
             } 
             ((edge_color*)sensor[1])->setConfig(config) ;
-            afero->setAttribute(ATTR_COLOR0_TRIGMODE, 1, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;
     case ATTR_COLOR0_ITIME: /* color0 config */
@@ -318,13 +318,13 @@
             uint8_t config = ((edge_color*)sensor[1])->getConfig() & 0x07 ;
             config = (value[0] << 4) | config ;
             ((edge_color*)sensor[1])->setConfig(config) ;
-            afero->setAttribute(ATTR_COLOR0_ITIME, 1, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;    
     case ATTR_COLOR0_PWM_PERIOD: /* color0 pwm period */
         if (sensor[1]) {
             ((edge_color*)sensor[1])->set_pwm_period((value[1] << 8) | value[0]) ;
-            afero->setAttribute(ATTR_COLOR0_PWM_PERIOD, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }            
         break ;
     case ATTR_COLOR0_PWM_TARGET: /* color0 pwm calibration target */
@@ -332,7 +332,7 @@
             color0_target[0] = (value[1] << 8) | value[0] ;
             color0_target[1] = color0_target[0] ;
             color0_target[2] = color0_target[1] ;
-            afero->setAttribute(ATTR_COLOR0_PWM_TARGET, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }            
         break ;        
     case ATTR_COLOR0_CALIBRATE: /* calibrate color0 */
@@ -342,6 +342,7 @@
             afero->setAttribute32(ATTR_COLOR0_PWM_G, color0_pwm[1]) ;
             afero->setAttribute32(ATTR_COLOR0_PWM_B, color0_pwm[2]) ;
         }
+        afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         afero->setAttributeBool(ATTR_COLOR0_CALIBRATE, false) ;
         break ;
     case ATTR_COLOR1_ENABLE: /* color1 enable */
@@ -349,17 +350,16 @@
             if (value[0]) {
                 sensor[2]->reset() ;
                 sensor[2]->enable() ;
-                afero->setAttributeBool(ATTR_COLOR1_ENABLE, true) ;
             } else {
                 sensor[2]->disable() ;
-                afero->setAttributeBool(ATTR_COLOR1_ENABLE, false) ;
             }
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;
     case ATTR_COLOR1_INTERVAL:
         if (sensor[2]) {
             sensor[2]->setInterval((value[1] << 8) | value[0]) ;
-            afero->setAttribute(ATTR_COLOR1_INTERVAL, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;    
     case ATTR_COLOR1_TRIGMODE: /* color0 config */
@@ -369,7 +369,7 @@
                 config = config | 0x06 ;
             } 
             ((edge_color*)sensor[2])->setConfig(config) ;
-            afero->setAttribute(ATTR_COLOR1_TRIGMODE, 1, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;
     case ATTR_COLOR1_ITIME: /* color0 config */
@@ -377,13 +377,13 @@
             uint8_t config = ((edge_color*)sensor[2])->getConfig() & 0x07 ;
             config = (value[0] << 4) | config ;
             ((edge_color*)sensor[2])->setConfig(config) ;
-            afero->setAttribute(ATTR_COLOR1_ITIME, 1, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ;  
     case ATTR_COLOR1_PWM_PERIOD: /* color0 pwm period */
         if (sensor[2]) {
             ((edge_color*)sensor[2])->set_pwm_period((value[1] << 8) | value[0]) ;
-            afero->setAttribute(ATTR_COLOR1_PWM_PERIOD, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }            
         break ;
     case ATTR_COLOR1_PWM_TARGET: /* color0 pwm calibration target */
@@ -391,7 +391,7 @@
             color1_target[0] = (value[1] << 8) | value[0] ;
             color1_target[1] = color0_target[0] ;
             color1_target[2] = color0_target[1] ;
-            afero->setAttribute(ATTR_COLOR1_PWM_TARGET, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }            
         break ;   
     case ATTR_COLOR1_CALIBRATE: /* calibrate color1 */
@@ -401,6 +401,7 @@
             afero->setAttribute32(ATTR_COLOR1_PWM_G, color1_pwm[1]) ;
             afero->setAttribute32(ATTR_COLOR1_PWM_B, color1_pwm[2]) ;
         }
+        afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         afero->setAttributeBool(ATTR_COLOR1_CALIBRATE, false) ;
         break ;
     case ATTR_TEMP0_ENABLE: /* temp0 is used to control temp-sensors */
@@ -408,17 +409,16 @@
             if (value[0]) {
                 sensor[3]->reset() ;
                 sensor[3]->enable() ;
-                afero->setAttributeBool(ATTR_TEMP0_ENABLE, true) ;
             } else {
                 sensor[3]->disable() ;
-                afero->setAttributeBool(ATTR_TEMP0_ENABLE, false) ;
             }
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         } 
         break ;
     case ATTR_TEMP0_INTERVAL:
         if (sensor[3]) {
             sensor[3]->setInterval((value[1] << 8) | value[0]) ;
-            afero->setAttribute(ATTR_TEMP0_INTERVAL, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ; 
     case ATTR_TEMP3_ENABLE: /* temp3 enable */
@@ -428,17 +428,16 @@
             if (value[0]) {
                 sensor[4]->reset() ;
                 sensor[4]->enable() ;
-                afero->setAttributeBool(ATTR_GAS_ENABLE, true) ;
             } else {
                 sensor[4]->disable() ;
-                afero->setAttributeBool(ATTR_GAS_ENABLE, false) ;
             }
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }   
         break ;
     case ATTR_GAS_INTERVAL:
         if (sensor[4]) {
             sensor[4]->setInterval((value[1] << 8) | value[0]) ;
-            afero->setAttribute(ATTR_GAS_INTERVAL, 2, value) ;
+            afero->setAttributeComplete(requestId, attributeId, valueLen, value) ;
         }
         break ; 
     default: