Orefatoi
/
afero_poc15_171201
POC1.5 prototype 2 x color sensor 2 x LM75B 3 x AnalogIn 1 x accel
Diff: af_utils/af_attriburtes.cpp
- Revision:
- 6:44ca704f2bc1
- Parent:
- 5:eba500888787
- Child:
- 8:5590f55bdf41
--- a/af_utils/af_attriburtes.cpp Tue Dec 05 00:46:52 2017 +0000 +++ b/af_utils/af_attriburtes.cpp Wed Dec 06 00:35:56 2017 +0000 @@ -53,59 +53,59 @@ { ATTR_COLOR1_G_VALUE, "Color1 G", ATTRIBUTE_TYPE_SINT16, 2 }, { ATTR_COLOR1_B_VALUE, "Color1 B", ATTRIBUTE_TYPE_SINT16, 2 }, /* first temperature sensor (LM75B) */ - { ATTR_TEMP0_PRESENT, "Temp0 Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_TEMP0_ENABLE, "Temp0 Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_TEMP0_INTERVAL, "Temp0 Interval", ATTRIBUTE_TYPE_SINT16, 2 }, - { ATTR_TEMP0_VALUE, "Temp0 Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, + { ATTR_TEMP0_PRESENT, "Temp0 Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_TEMP0_ENABLE, "Temp0 Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_TEMP0_INTERVAL, "Temp0 Interval", ATTRIBUTE_TYPE_SINT16, 2 }, + { ATTR_TEMP0_VALUE, "Temp0 Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, /* second temperature sensor (SMTC502AT/Before) */ - { ATTR_TEMP1_PRESENT, "Temp1 Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_TEMP1_ENABLE, "Temp1 Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_TEMP1_INTERVAL, "Temp1 Interval", ATTRIBUTE_TYPE_SINT16, 2 }, - { ATTR_TEMP1_VALUE, "Temp1 Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, + { ATTR_TEMP1_PRESENT, "Temp1 Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_TEMP1_ENABLE, "Temp1 Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_TEMP1_INTERVAL, "Temp1 Interval", ATTRIBUTE_TYPE_SINT16, 2 }, + { ATTR_TEMP1_VALUE, "Temp1 Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, /* third temperature sensor (SMTC502AT/After) */ - { ATTR_TEMP2_PRESENT, "Temp2 Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_TEMP2_ENABLE, "Temp2 Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_TEMP2_INTERVAL, "Temp2 Interval", ATTRIBUTE_TYPE_SINT16, 2 }, - { ATTR_TEMP2_VALUE, "Temp2 Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, + { ATTR_TEMP2_PRESENT, "Temp2 Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_TEMP2_ENABLE, "Temp2 Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_TEMP2_INTERVAL, "Temp2 Interval", ATTRIBUTE_TYPE_SINT16, 2 }, + { ATTR_TEMP2_VALUE, "Temp2 Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, /* fouth temperateure sensor (LM75B) */ - { ATTR_TEMP3_PRESENT, "Temp3 Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_TEMP3_ENABLE, "Temp3 Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_TEMP3_INTERVAL, "Temp3 Interval", ATTRIBUTE_TYPE_SINT16, 2 }, - { ATTR_TEMP3_VALUE, "Temp3 Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, + { ATTR_TEMP3_PRESENT, "Temp3 Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_TEMP3_ENABLE, "Temp3 Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_TEMP3_INTERVAL, "Temp3 Interval", ATTRIBUTE_TYPE_SINT16, 2 }, + { ATTR_TEMP3_VALUE, "Temp3 Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, /* Gas Pressure sensor (PSE530) */ - { ATTR_GAS_PRESENT, "Gas Pressure Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_GAS_ENABLE, "Gas Pressure Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { ATTR_GAS_INTERVAL, "Gas Pressure Interval", ATTRIBUTE_TYPE_SINT16, 2 }, - { ATTR_GAS_VALUE, "Gas Pressure Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, + { ATTR_GAS_PRESENT, "Gas Pressure Present", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_GAS_ENABLE, "Gas Pressure Enable", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_GAS_INTERVAL, "Gas Pressure Interval", ATTRIBUTE_TYPE_SINT16, 2 }, + { ATTR_GAS_VALUE, "Gas Pressure Value", ATTRIBUTE_TYPE_FIXED_15_16, 4}, /* Software Reset Request */ - { ATTR_SOFTWARE_RESET, "Software Reset", ATTRIBUTE_TYPE_BOOLEAN, 1 }, + { ATTR_SOFTWARE_RESET, "Software Reset", ATTRIBUTE_TYPE_BOOLEAN, 1 }, - { 1024, "LED", ATTRIBUTE_TYPE_SINT16, 2 }, - { 1025, "I/O 0", ATTRIBUTE_TYPE_SINT64, 8 }, - { 1026, "I/O 1", ATTRIBUTE_TYPE_SINT64, 8 }, - { 1028, "I/O 2", ATTRIBUTE_TYPE_SINT64, 8 }, - { 1030, "BUTTON", ATTRIBUTE_TYPE_BOOLEAN, 2 }, - { 1031, "I/O 3", ATTRIBUTE_TYPE_SINT64, 8 }, - { 2001, "Bootloader Version", ATTRIBUTE_TYPE_SINT64, 8 }, - { 2002, "BLE Stack Version", ATTRIBUTE_TYPE_SINT64, 8 }, - { 2003, "FW Application Version", ATTRIBUTE_TYPE_SINT64, 8 }, - { 2004, "Device Description", ATTRIBUTE_TYPE_SINT64, 8 }, - { 2006, "Wi-Fi chip", ATTRIBUTE_TYPE_SINT64, 8 }, - { 59001, "Offline Schedules enable", ATTRIBUTE_TYPE_SINT16, 2 }, - { 60000, "Security Enabled", ATTRIBUTE_TYPE_SINT8, 1 }, /* ? */ - { 65001, "UTC offset data", ATTRIBUTE_TYPE_BYTES, 8 }, - { 65004, "Configured SSID", ATTRIBUTE_TYPE_UTF8S, 10 }, /* ? */ - { 65005, "Wi-Fi Bars", ATTRIBUTE_TYPE_SINT8, 1 }, - { 65006, "Wi-Fi Steady State", ATTRIBUTE_TYPE_SINT8, 1 }, - { 65012, "Command", ATTRIBUTE_TYPE_BYTES, 8 }, /* ? */ - { 65013, "ASR State", ATTRIBUTE_TYPE_SINT8, 1 }, - { 65014, "Low Battery Warning", ATTRIBUTE_TYPE_SINT8, 1 }, - { ATTR_LINKED_TIMESTAMP, "Linked Timestamp", ATTRIBUTE_TYPE_SINT32, 4 }, - { 65018, "Attribute ACK", ATTRIBUTE_TYPE_SINT16, 8 }, - { 65019, "Reboot Reason", ATTRIBUTE_TYPE_UTF8S, 100 }, - { 65020, "BLE Comms", ATTRIBUTE_TYPE_BYTES, 12 }, - { 65021, "MCU Interface", ATTRIBUTE_TYPE_SINT8, 1 }, - { 0, 0, 0, 0 } + { ATTR_LED, "LED", ATTRIBUTE_TYPE_SINT16, 2 }, + { ATTR_IO0, "I/O 0", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_IO1, "I/O 1", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_IO2, "I/O 2", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_BUTTON, "BUTTON", ATTRIBUTE_TYPE_BOOLEAN, 2 }, + { ATTR_IO3, "I/O 3", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_BOOT_LOADER_VER, "Bootloader Version", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_BLE_STACK_VER, "BLE Stack Version", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_FW_APP_VER, "FW Application Version", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_DEVICE_DESC, "Device Description", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_WIFI_VER, "Wi-Fi chip", ATTRIBUTE_TYPE_SINT64, 8 }, + { ATTR_OFFLINE_SCHED, "Offline Schedules enable", ATTRIBUTE_TYPE_SINT16, 2 }, + { ATTR_SECURITY_ENABLED, "Security Enabled", ATTRIBUTE_TYPE_SINT8, 1 }, /* ? */ + { ATTR_UTC_OFFSET, "UTC offset data", ATTRIBUTE_TYPE_BYTES, 8 }, + { ATTR_CONFIGURES_SSID, "Configured SSID", ATTRIBUTE_TYPE_UTF8S, 10 }, /* ? */ + { ATTR_WIFI_BARS, "Wi-Fi Bars", ATTRIBUTE_TYPE_SINT8, 1 }, + { ATTR_WIFI_STDY_STATE, "Wi-Fi Steady State", ATTRIBUTE_TYPE_SINT8, 1 }, + { ATTR_COMMAND, "Command", ATTRIBUTE_TYPE_BYTES, 8 }, /* ? */ + { ATTR_ASR_STATE, "ASR State", ATTRIBUTE_TYPE_SINT8, 1 }, + { ATTR_LOW_BATTERY, "Low Battery Warning", ATTRIBUTE_TYPE_SINT8, 1 }, + { ATTR_LINKED_TIMESTAMP, "Linked Timestamp", ATTRIBUTE_TYPE_SINT32, 4 }, + { ATTR_ATTR_ACK, "Attribute ACK", ATTRIBUTE_TYPE_SINT16, 8 }, + { ATTR_REBOOT_REASON, "Reboot Reason", ATTRIBUTE_TYPE_UTF8S, 100 }, + { ATTR_BLE_COMMS, "BLE Comms", ATTRIBUTE_TYPE_BYTES, 12 }, + { ATTR_MCU_INTERFACE, "MCU Interface", ATTRIBUTE_TYPE_SINT8, 1 }, + { 0, 0, 0, 0 } } ; int get_af_attr(uint16_t id) @@ -337,14 +337,14 @@ break ; case ATTR_COLOR0_CALIBRATE: /* calibrate color0 */ if (sensor[1]) { - afero->setAttributeComplete(requestId, attributeId, valueLen, value) ; - if (value[0]) { /* do calibration! */ + if (value[0]) { /* do calibration! */ ((edge_color*)sensor[1])->calibrate(color0_target, color0_pwm, 10) ; afero->setAttribute32(ATTR_COLOR0_PWM_R, color0_pwm[0]) ; afero->setAttribute32(ATTR_COLOR0_PWM_G, color0_pwm[1]) ; afero->setAttribute32(ATTR_COLOR0_PWM_B, color0_pwm[2]) ; - afero->setAttributeBool(ATTR_COLOR0_CALIBRATE, false) ; } +// afero->setAttributeComplete(requestId, attributeId, valueLen, value) ; + afero->setAttributeBool(ATTR_COLOR0_CALIBRATE, false) ; } break ; case ATTR_COLOR1_ENABLE: /* color1 enable */ @@ -399,13 +399,13 @@ case ATTR_COLOR1_CALIBRATE: /* calibrate color1 */ if (sensor[2]) { if (value[0]) { /* do calibration! */ - afero->setAttributeComplete(requestId, attributeId, valueLen, value) ; ((edge_color*)sensor[2])->calibrate(color1_target, color1_pwm, 10) ; afero->setAttribute32(ATTR_COLOR1_PWM_R, color1_pwm[0]) ; afero->setAttribute32(ATTR_COLOR1_PWM_G, color1_pwm[1]) ; afero->setAttribute32(ATTR_COLOR1_PWM_B, color1_pwm[2]) ; - afero->setAttributeBool(ATTR_COLOR1_CALIBRATE, false) ; } +// afero->setAttributeComplete(requestId, attributeId, valueLen, value) ; + afero->setAttributeBool(ATTR_COLOR1_CALIBRATE, false) ; } break ; @@ -484,6 +484,24 @@ } af_print_values(requestId, attributeId, valueLen, value) ; switch(attributeId) { + case ATTR_REBOOT_REASON: + printf("Reboot Reason: ") ; + switch(value[0]) { + case 1: printf("Reset pin asserted\n") ; break ; + case 2: printf("Watchdog reset\n") ; break ; + case 4: printf("Software reset\n") ; break ; + case 8: printf("CPU Lock up\n") ; break ; + } + break ; + case ATTR_MCU_INTERFACE: + printf("MCU Interface: ") ; + switch(value[0]) { + case 0: printf("No MCU\n") ; break ; + case 1: printf("SPI Slave\n") ; break ; + case 2: printf("UART\n") ; break ; + default: printf("Unknown\n") ; break ; + } + break ; case AF_SYSTEM_ASR_STATE: printf("ASR state: ") ; switch(value[0]) { @@ -496,16 +514,25 @@ printf("Linked\n") ; break ; case MODULE_STATE_UPDATING: - gLinkedState = false ; + gLinkedState = true ; printf("Updating\n") ; + if (display) { + display->clearDisplay() ; + display->putStr("FW Updating...") ; + } break ; case MOUDLE_STATE_UPDATE_READY: gLinkedState = false ; printf("Update ready - rebooting\n") ; + if (display) { + display->clearDisplay() ; + display->putStr("Rebooting...") ; + } while(afero->setAttribute32(AF_SYSTEM_COMMAND, MODULE_COMMAND_REBOOT) != afSUCCESS) { afero->loop() ; - wait(0.1) ; + wait_us(100) ; } + software_reset() ; break ; default: break ;