Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

inc/global.h

Committer:
davidjhoward
Date:
2016-09-16
Revision:
69:9e1ff95fd9c5
Parent:
67:49f266601d83
Parent:
68:dbe39d83eb98
Child:
73:3750cc5251e9

File content as of revision 69:9e1ff95fd9c5:

/******************************************************************************
 *
 * File:                global.h
 * Desciption:          global data
 *
 *****************************************************************************/
#ifndef GLOBAL_H
#define GLOBAL_H

#include "mbed.h"
#include "rtos.h"
#include "ntshell.h"
#include "mDot.h"

extern int sig_continue;
extern osThreadId mainThreadId;

typedef enum action_tag {
    ACTION_CREATE,
    ACTION_MODIFY,
    ACTION_DESTROY,
    ACTION_READ_FILE,
} Action_t;

typedef enum control_tag {
    CONTROL_TIMER       = 0,
    CONTROL_PID         = 1,
    CONTROL_SETPOINT    = 2,
    CONTROL_COMPOSITE   = 3,
    CONTROL_MANUAL      = 4
} Control_t;


// message data type
typedef struct message_tag {
    Action_t        action;
    Control_t       control;
    char            controlFile[64];
} Message_t;

typedef enum { 
   OFF = 0,
   ON = 1
} State; 

typedef enum output_action {
    ACTION_NEW,
    ACTION_CONTROL_REQ
} OutputAction;

// output control request message 
typedef struct output_control_req_t {
    OutputAction    action;
    char            controlFile[64];
    string          output;
    State           state;          
    unsigned int    priority;
} OutputControlMsg_t;

// analytics logger request message 
typedef struct analytics_logger_req_t {
    char            timestamp[32];
    char            log_entry[96];
} AnalyticsLoggerReq_t;

// analytics logger request message 
typedef struct cloud_data_hadler_req_t {
    char            packet[96];
} CloudDataHandlerReq_t;

extern Mail<Message_t, 16> MailBox;
extern Mail<Message_t, 16> ModbusMasterMailBox;
extern Mail<OutputControlMsg_t, 16> OutputMasterMailBox;
extern Mail<AnalyticsLoggerReq_t, 16> AnalyticsLoggerMailBox;
extern Mail<CloudDataHandlerReq_t, 16> CloudDataHandlerMailBox;

extern ntshell_t ntshell;

extern int  func_read(char *buf, int cnt);
extern int  func_write(const char *buf, int cnt);
extern int  func_cb_ntshell(const char *text);
extern void func_cb_ntopt(int argc, char **argv);
extern mDot *GLOBAL_mdot;

struct ModbusRegister {
    std::string name;
    std::string units;
    double min;
    double max;
    int node;
    int reg;
    int rtype;
    int type;
    int size;
    int order;
    int rfreq;
    std::string fmt;
    float float_value;
    uint32_t uint32_value;
    uint16_t uint16_value;
};

typedef enum byte_order {
    BigEndian                   = 0,
    LittleEndian                = 1,
    BigEndianReverseWord        = 2,
    LittleEndianReversWord      = 3,
} Byte_Order;

extern std::map<std::string,ModbusRegister> ModbusRegisterMap;

extern I2C* i2c;

extern Thread *GLOBAL_analyticsLogger_thread;
extern Thread *GLOBAL_modbusMaster_thread;
extern Thread *GLOBAL_BLE_thread;
extern Thread *GLOBAL_CDH_thread;
extern Thread *GLOBAL_configHandler_thread;
extern Thread *GLOBAL_controlTask_thread;
extern Thread *GLOBAL_outputTask_thread;

#endif