Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed
Fork of ICE by
inc/global.h
- Committer:
- davidjhoward
- Date:
- 2016-09-16
- Revision:
- 68:dbe39d83eb98
- Parent:
- 63:0ded43237b22
- Child:
- 69:9e1ff95fd9c5
File content as of revision 68:dbe39d83eb98:
/******************************************************************************
*
* File: global.h
* Desciption: global data
*
*****************************************************************************/
#ifndef GLOBAL_H
#define GLOBAL_H
#include "mbed.h"
#include "rtos.h"
#include "ntshell.h"
#include "mDot.h"
#define SUPPRESS_OUTPUT
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
