Release candidate version. The pointer in GAS Pressure display is changed to a triangle.

Dependencies:   UniGraphic mbed vt100

Please note, at 2-Mar-2018 the current version of mbed-lib has a defect in Ticker.
https://os.mbed.com/forum/bugs-suggestions/topic/29287/

So, mbed lib version 157 is intentionally being used.
Please do not update mbed library until the problem in the above URL is fixed.

In this version, format of GAS Pressure Display has been changed.
/media/uploads/Rhyme/low.jpg

/media/uploads/Rhyme/good.jpg

/media/uploads/Rhyme/high.jpg

moto

af_utils/af_attributes.h

Committer:
Rhyme
Date:
2018-03-02
Revision:
0:774324cbc5a6

File content as of revision 0:774324cbc5a6:

#ifndef _AF_ATTRIBUTES_H_
#define _AF_ATTRIBUTES_H_

#include "mbed.h"
#include "afLib.h"

/**
 * af_attributes.h
 *
 */

#define ATTRIBUTE_TYPE_SINT8                                       2
#define ATTRIBUTE_TYPE_SINT16                                      3
#define ATTRIBUTE_TYPE_SINT32                                      4
#define ATTRIBUTE_TYPE_SINT64                                      5
#define ATTRIBUTE_TYPE_BOOLEAN                                     1
#define ATTRIBUTE_TYPE_UTF8S                                      20
#define ATTRIBUTE_TYPE_BYTES                                      21
#define ATTRIBUTE_TYPE_FIXED_15_16                                 6

#define afSUCCESS                    0    // Operation completed successfully
#define afERROR_NO_SUCH_ATTRIBUTE   -1    // Request was made for unknown attribute id
#define afERROR_BUSY                -2    // Request already in progress, try again
#define afERROR_INVALID_COMMAND     -3    // Command could not be parsed
#define afERROR_QUEUE_OVERFLOW      -4    // Queue is full
#define afERROR_QUEUE_UNDERFLOW     -5    // Queue is empty
#define afERROR_INVALID_PARAM       -6    // Bad input parameter

#define AF_SYSTEM_COMMAND            65012
#define AF_SYSTEM_ASR_STATE          65013
#define AF_SYSTEM_LINKED_TIMESTAMP   65015

#define MODULE_STATE_REBOOTED                 0
#define MODULE_STATE_LINKED                   1
#define MODULE_STATE_UPDATING                 2
#define MOUDLE_STATE_UPDATE_READY             3

#define MODULE_COMMAND_NONE                   0
#define MODULE_COMMAND_REBOOT                 1

#define ATTR_SENSE_VAL               1
#define ATTR_ACCEL_PRESENT           100
#define ATTR_ACCEL_ENABLE            101
#define ATTR_ACCEL_INTERVAL          102 
#define ATTR_ACCEL_VALUE             103

#define ATTR_COLOR0_PRESENT          200
#define ATTR_COLOR0_ENABLE           201
#define ATTR_COLOR0_INTERVAL         202
#define ATTR_COLOR0_TRIGMODE         203
#define ATTR_COLOR0_ITIME            204
#define ATTR_COLOR0_CALIBRATE        205
#define ATTR_COLOR0_PWM_R            206
#define ATTR_COLOR0_PWM_G            207
#define ATTR_COLOR0_PWM_B            208
#define ATTR_COLOR0_PWM_PERIOD       209
#define ATTR_COLOR0_PWM_TARGET       210
#define ATTR_COLOR0_R_VALUE          211
#define ATTR_COLOR0_G_VALUE          212
#define ATTR_COLOR0_B_VALUE          213

#define ATTR_COLOR1_PRESENT          220
#define ATTR_COLOR1_ENABLE           221
#define ATTR_COLOR1_INTERVAL         222
#define ATTR_COLOR1_TRIGMODE         223
#define ATTR_COLOR1_ITIME            224
#define ATTR_COLOR1_CALIBRATE        225
#define ATTR_COLOR1_PWM_R            226
#define ATTR_COLOR1_PWM_G            227
#define ATTR_COLOR1_PWM_B            228
#define ATTR_COLOR1_PWM_PERIOD       229
#define ATTR_COLOR1_PWM_TARGET       230
#define ATTR_COLOR1_R_VALUE          231
#define ATTR_COLOR1_G_VALUE          232
#define ATTR_COLOR1_B_VALUE          233

/* temperature sensor LM75B with color0 */
#define ATTR_TEMP0_PRESENT           300
#define ATTR_TEMP0_ENABLE            301
#define ATTR_TEMP0_INTERVAL          302
#define ATTR_TEMP0_VALUE             303

/* temperature sensor AT502-11 (before) */
#define ATTR_TEMP1_PRESENT           310
#define ATTR_TEMP1_ENABLE            311
#define ATTR_TEMP1_INTERVAL          312
#define ATTR_TEMP1_VALUE             313

/* temperature sensor AT502-11 (after) */
#define ATTR_TEMP2_PRESENT           320
#define ATTR_TEMP2_ENABLE            321
#define ATTR_TEMP2_INTERVAL          322
#define ATTR_TEMP2_VALUE             323

/* temperature sensor LM75B with color1 */
#define ATTR_TEMP3_PRESENT           330
#define ATTR_TEMP3_ENABLE            331
#define ATTR_TEMP3_INTERVAL          332
#define ATTR_TEMP3_VALUE             333

/* gas pressure sensor */
/* gas pressure sensor */
#define ATTR_GAS_PRESENT            400
#define ATTR_GAS_ENABLE             401
#define ATTR_GAS_INTERVAL           402
#define ATTR_GAS_VALUE              403
#define ATTR_GAS_THR_MODE           404
#define ATTR_GAS_THR_HIGH           405
#define ATTR_GAS_THR_LOW            406

/* current trans sensor */
#define ATTR_CURRENT_PRESENT         500
#define ATTR_CURRENT_ENABLE          501
#define ATTR_CURRENT_INTERVAL        502
#define ATTR_CURRENT_VALUE           503

#define ATTR_SOFTWARE_RESET          666
#define ATTR_DISPLAY_MODE            777
#define ATTR_MCU_RESET_REASON        999

#define ATTR_LED                 1024
#define ATTR_IO0                 1025
#define ATTR_IO1                 1026
#define ATTR_IO2                 1028
#define ATTR_BUTTON              1030
#define ATTR_IO3                 1031

#define ATTR_BOOT_LOADER_VER     2001
#define ATTR_BLE_STACK_VER       2002
#define ATTR_FW_APP_VER          2003
#define ATTR_DEVICE_DESC         2004
#define ATTR_WIFI_VER            2006

#define ATTR_OFFLINE_SCHED      59001
#define ATTR_SECURITY_ENABLED   60000
#define ATTR_UTC_OFFSET         65001
#define ATTR_CONFIGURES_SSID    65004
#define ATTR_WIFI_BARS          65005
#define ATTR_WIFI_STDY_STATE    65006

#define ATTR_COMMAND            65012
#define ATTR_ASR_STATE          65013
#define ATTR_LOW_BATTERY        65014
#define ATTR_LINKED_TIMESTAMP   65015
#define ATTR_ATTR_ACK           65018
#define ATTR_REBOOT_REASON      65019
#define ATTR_BLE_COMMS          65020
#define ATTR_MCU_INTERFACE      65021

#define DISPLAY_MODE_OFF        0
#define DISPLAY_MODE_GAS        1
#define DISPLAY_MODE_SUMMARY    2
#define DISPLAY_MODE_CHART      3

typedef struct {
    uint16_t id ;
    char *description ;
    int attribute_type ;
    int size ;
} af_attribute_type ;

/**
 * get_af_attr
 * @param id attribute id value to look up
 * @returns index of the attribute in the af_attribute_type af_attr[]
 */
int get_af_attr(uint16_t id) ;

/**
 * print_af_error
 * @param resultCode return value from afLib function(s)
 */
void print_af_error(int resultCode) ;

/**
 * Callback that allows ASR to request an MCU attribute be changed. 
 * You should define this function in your MCU firmware to perform application-specific actions 
 * your code must take (e.g., updating the state of the hardware), 
 * in light of the attribute value change.
*/
void attributeChangeRequest(
    const uint8_t   requestId, 
    const uint16_t  attributeId,
    const uint16_t  valueLen,
    const uint8_t   *value
) ;

/*
 * Application callback that allows afLib to notify that an attribute has changed. 
 * This method will be called in response to a getAttribute call from the application 
 * and whenever a ASR module attribute changes.
 */
void attributeUpdatedReport(
    const uint8_t   requestId,
    const uint16_t  attributeId,
    const uint16_t  valueLen,
    const uint8_t   *value
) ;

extern afLib *afero ; 
#endif /* _AF_ATTRIBUTES_H */