Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
davidjhoward
Date:
Thu Sep 22 14:49:32 2016 +0000
Revision:
106:c0ddba334e93
Parent:
104:ddf0a8bdaad7
Child:
107:e900bd138bf3
more updates to logging

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmarkel44 0:65cfa4873284 1 /******************************************************************************
davidjhoward 15:a6ee32969e8e 2 *
jmarkel44 0:65cfa4873284 3 * File: global.h
davidjhoward 15:a6ee32969e8e 4 * Desciption: global data
jmarkel44 0:65cfa4873284 5 *
jmarkel44 0:65cfa4873284 6 *****************************************************************************/
jmarkel44 0:65cfa4873284 7 #ifndef GLOBAL_H
jmarkel44 0:65cfa4873284 8 #define GLOBAL_H
jmarkel44 0:65cfa4873284 9
jmarkel44 0:65cfa4873284 10 #include "mbed.h"
jmarkel44 0:65cfa4873284 11 #include "rtos.h"
jmarkel44 0:65cfa4873284 12 #include "ntshell.h"
davidjhoward 7:c0c03193612d 13 #include "mDot.h"
jmarkel44 0:65cfa4873284 14
jmarkel44 74:03ccf04998b5 15 // file naming prefix conventions
jmarkel44 74:03ccf04998b5 16 #define CONTROL_SP_STR "control_sp_"
jmarkel44 74:03ccf04998b5 17 #define CONTROL_TM_STR "control_tm_"
jmarkel44 74:03ccf04998b5 18 #define CONTROL_MN_STR "control_mn_"
jmarkel44 74:03ccf04998b5 19
jmarkel44 75:96512ccc0443 20 extern int sig_output_continue;
jmarkel44 75:96512ccc0443 21 extern int sig_config_continue;
jmarkel44 75:96512ccc0443 22
jmarkel44 3:8ea4db957749 23 extern osThreadId mainThreadId;
jmarkel44 0:65cfa4873284 24
jmarkel44 0:65cfa4873284 25 typedef enum action_tag {
jmarkel44 0:65cfa4873284 26 ACTION_CREATE,
jmarkel44 0:65cfa4873284 27 ACTION_MODIFY,
davidjhoward 31:4b1587034318 28 ACTION_DESTROY,
davidjhoward 31:4b1587034318 29 ACTION_READ_FILE,
jmarkel44 0:65cfa4873284 30 } Action_t;
jmarkel44 0:65cfa4873284 31
jmarkel44 0:65cfa4873284 32 typedef enum control_tag {
jmarkel44 0:65cfa4873284 33 CONTROL_TIMER = 0,
jmarkel44 0:65cfa4873284 34 CONTROL_PID = 1,
jmarkel44 0:65cfa4873284 35 CONTROL_SETPOINT = 2,
jmarkel44 0:65cfa4873284 36 CONTROL_COMPOSITE = 3,
jmarkel44 0:65cfa4873284 37 CONTROL_MANUAL = 4
jmarkel44 0:65cfa4873284 38 } Control_t;
jmarkel44 0:65cfa4873284 39
jmarkel44 0:65cfa4873284 40
jmarkel44 0:65cfa4873284 41 // message data type
jmarkel44 0:65cfa4873284 42 typedef struct message_tag {
jmarkel44 0:65cfa4873284 43 Action_t action;
jmarkel44 0:65cfa4873284 44 Control_t control;
davidjhoward 31:4b1587034318 45 char controlFile[64];
jmarkel44 0:65cfa4873284 46 } Message_t;
jmarkel44 0:65cfa4873284 47
jmarkel44 56:225786c56315 48 typedef enum {
jmarkel44 56:225786c56315 49 OFF = 0,
jmarkel44 56:225786c56315 50 ON = 1
jmarkel44 56:225786c56315 51 } State;
jmarkel44 56:225786c56315 52
jmarkel44 63:0ded43237b22 53 typedef enum output_action {
jmarkel44 63:0ded43237b22 54 ACTION_NEW,
jmarkel44 71:34856d21f2bf 55 ACTION_CONTROL_ON,
jmarkel44 71:34856d21f2bf 56 ACTION_CONTROL_OFF,
jmarkel44 71:34856d21f2bf 57 ACTION_CONTROL_REGISTER,
jmarkel44 71:34856d21f2bf 58 ACTION_CONTROL_UNREGISTER
jmarkel44 63:0ded43237b22 59 } OutputAction;
jmarkel44 63:0ded43237b22 60
jmarkel44 51:66b820f203a5 61 // output control request message
jmarkel44 51:66b820f203a5 62 typedef struct output_control_req_t {
jmarkel44 63:0ded43237b22 63 OutputAction action;
jmarkel44 71:34856d21f2bf 64 char controlFile[32];
jmarkel44 71:34856d21f2bf 65 char output[12];
jmarkel44 71:34856d21f2bf 66 char id[32];
jmarkel44 56:225786c56315 67 State state;
jmarkel44 51:66b820f203a5 68 unsigned int priority;
jmarkel44 63:0ded43237b22 69 } OutputControlMsg_t;
jmarkel44 51:66b820f203a5 70
davidjhoward 58:a4422d19b2ea 71 // analytics logger request message
davidjhoward 58:a4422d19b2ea 72 typedef struct analytics_logger_req_t {
davidjhoward 58:a4422d19b2ea 73 char timestamp[32];
davidjhoward 58:a4422d19b2ea 74 char log_entry[96];
davidjhoward 58:a4422d19b2ea 75 } AnalyticsLoggerReq_t;
davidjhoward 58:a4422d19b2ea 76
jmarkel44 0:65cfa4873284 77 extern Mail<Message_t, 16> MailBox;
davidjhoward 31:4b1587034318 78 extern Mail<Message_t, 16> ModbusMasterMailBox;
jmarkel44 63:0ded43237b22 79 extern Mail<OutputControlMsg_t, 16> OutputMasterMailBox;
davidjhoward 58:a4422d19b2ea 80 extern Mail<AnalyticsLoggerReq_t, 16> AnalyticsLoggerMailBox;
jmarkel44 0:65cfa4873284 81
jmarkel44 0:65cfa4873284 82 extern ntshell_t ntshell;
jmarkel44 0:65cfa4873284 83
jmarkel44 0:65cfa4873284 84 extern int func_read(char *buf, int cnt);
jmarkel44 0:65cfa4873284 85 extern int func_write(const char *buf, int cnt);
jmarkel44 0:65cfa4873284 86 extern int func_cb_ntshell(const char *text);
jmarkel44 0:65cfa4873284 87 extern void func_cb_ntopt(int argc, char **argv);
davidjhoward 7:c0c03193612d 88 extern mDot *GLOBAL_mdot;
jmarkel44 0:65cfa4873284 89
davidjhoward 9:ef0ca2f8a8a6 90 struct ModbusRegister {
davidjhoward 9:ef0ca2f8a8a6 91 std::string name;
davidjhoward 9:ef0ca2f8a8a6 92 std::string units;
davidjhoward 9:ef0ca2f8a8a6 93 double min;
davidjhoward 9:ef0ca2f8a8a6 94 double max;
davidjhoward 9:ef0ca2f8a8a6 95 int node;
davidjhoward 9:ef0ca2f8a8a6 96 int reg;
davidjhoward 9:ef0ca2f8a8a6 97 int rtype;
davidjhoward 9:ef0ca2f8a8a6 98 int type;
davidjhoward 15:a6ee32969e8e 99 int size;
davidjhoward 15:a6ee32969e8e 100 int order;
davidjhoward 49:0456ee2271be 101 int rfreq;
davidjhoward 81:d45bfa16953a 102 bool input;
davidjhoward 9:ef0ca2f8a8a6 103 std::string fmt;
davidjhoward 15:a6ee32969e8e 104 float float_value;
davidjhoward 15:a6ee32969e8e 105 uint32_t uint32_value;
davidjhoward 15:a6ee32969e8e 106 uint16_t uint16_value;
davidjhoward 82:f3e495a98877 107 bool simulated;
davidjhoward 82:f3e495a98877 108 };
davidjhoward 82:f3e495a98877 109
davidjhoward 82:f3e495a98877 110 struct SimulateInput {
davidjhoward 82:f3e495a98877 111 float start_value;
davidjhoward 82:f3e495a98877 112 float min;
davidjhoward 82:f3e495a98877 113 float max;
davidjhoward 82:f3e495a98877 114 float step;
davidjhoward 9:ef0ca2f8a8a6 115 };
davidjhoward 9:ef0ca2f8a8a6 116
davidjhoward 15:a6ee32969e8e 117 typedef enum byte_order {
davidjhoward 15:a6ee32969e8e 118 BigEndian = 0,
davidjhoward 15:a6ee32969e8e 119 LittleEndian = 1,
davidjhoward 15:a6ee32969e8e 120 BigEndianReverseWord = 2,
davidjhoward 15:a6ee32969e8e 121 LittleEndianReversWord = 3,
davidjhoward 15:a6ee32969e8e 122 } Byte_Order;
davidjhoward 9:ef0ca2f8a8a6 123
davidjhoward 104:ddf0a8bdaad7 124 typedef enum event_reason_tag {
davidjhoward 104:ddf0a8bdaad7 125 EVENT_REASON_AUTO,
davidjhoward 104:ddf0a8bdaad7 126 EVENT_REASON_MANUAL,
davidjhoward 104:ddf0a8bdaad7 127 EVENT_REASON_FLOW,
davidjhoward 104:ddf0a8bdaad7 128 EVENT_REASON_FAILSAFE,
davidjhoward 104:ddf0a8bdaad7 129 } EventReason_t;
davidjhoward 104:ddf0a8bdaad7 130
davidjhoward 106:c0ddba334e93 131 typedef enum control_type_tag {
davidjhoward 106:c0ddba334e93 132 CONTROL_TYPE_INHIBITOR,
davidjhoward 106:c0ddba334e93 133 CONTROL_TYPE_ACID_BASE,
davidjhoward 106:c0ddba334e93 134 CONTROL_TYPE_BLOWDOWN,
davidjhoward 106:c0ddba334e93 135 CONTORL_TYPE_TIMER,
davidjhoward 106:c0ddba334e93 136 CONTROL_TYPE_FLOW_OVERRIDE,
davidjhoward 106:c0ddba334e93 137 CONTROL_TYPE_OVERRIDE
davidjhoward 106:c0ddba334e93 138 } ControlType_t;
davidjhoward 106:c0ddba334e93 139
davidjhoward 104:ddf0a8bdaad7 140 typedef struct event_reason_struct_t {
davidjhoward 106:c0ddba334e93 141 ControlType_t controlType;
davidjhoward 104:ddf0a8bdaad7 142 EventReason_t eventReason;
davidjhoward 104:ddf0a8bdaad7 143 char inputTag[32];
davidjhoward 106:c0ddba334e93 144 char outputTag[32];
davidjhoward 104:ddf0a8bdaad7 145 float inputValue;
davidjhoward 104:ddf0a8bdaad7 146 float outputValue;
davidjhoward 104:ddf0a8bdaad7 147 } EventReasonStruct_t;
davidjhoward 104:ddf0a8bdaad7 148
davidjhoward 104:ddf0a8bdaad7 149
davidjhoward 104:ddf0a8bdaad7 150
davidjhoward 15:a6ee32969e8e 151 extern std::map<std::string,ModbusRegister> ModbusRegisterMap;
davidjhoward 82:f3e495a98877 152 extern std::map<std::string,SimulateInput> SimulateInputMap;
davidjhoward 15:a6ee32969e8e 153
davidjhoward 58:a4422d19b2ea 154 extern I2C* i2c;
davidjhoward 58:a4422d19b2ea 155
jmarkel44 34:f345fdec711d 156 extern Thread *GLOBAL_analyticsLogger_thread;
jmarkel44 34:f345fdec711d 157 extern Thread *GLOBAL_modbusMaster_thread;
jmarkel44 34:f345fdec711d 158 extern Thread *GLOBAL_BLE_thread;
jmarkel44 34:f345fdec711d 159 extern Thread *GLOBAL_CDH_thread;
jmarkel44 34:f345fdec711d 160 extern Thread *GLOBAL_configHandler_thread;
jmarkel44 34:f345fdec711d 161 extern Thread *GLOBAL_controlTask_thread;
jmarkel44 48:1c7861d80d16 162 extern Thread *GLOBAL_outputTask_thread;
jmarkel44 34:f345fdec711d 163
davidjhoward 15:a6ee32969e8e 164 #endif