Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
jmarkel44
Date:
Mon Sep 19 12:54:55 2016 +0000
Revision:
74:03ccf04998b5
Parent:
73:3750cc5251e9
Child:
75:96512ccc0443
load persistent controls (first spin)

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 0:65cfa4873284 20 extern int sig_continue;
jmarkel44 3:8ea4db957749 21 extern osThreadId mainThreadId;
jmarkel44 0:65cfa4873284 22
jmarkel44 0:65cfa4873284 23 typedef enum action_tag {
jmarkel44 0:65cfa4873284 24 ACTION_CREATE,
jmarkel44 0:65cfa4873284 25 ACTION_MODIFY,
davidjhoward 31:4b1587034318 26 ACTION_DESTROY,
davidjhoward 31:4b1587034318 27 ACTION_READ_FILE,
jmarkel44 0:65cfa4873284 28 } Action_t;
jmarkel44 0:65cfa4873284 29
jmarkel44 0:65cfa4873284 30 typedef enum control_tag {
jmarkel44 0:65cfa4873284 31 CONTROL_TIMER = 0,
jmarkel44 0:65cfa4873284 32 CONTROL_PID = 1,
jmarkel44 0:65cfa4873284 33 CONTROL_SETPOINT = 2,
jmarkel44 0:65cfa4873284 34 CONTROL_COMPOSITE = 3,
jmarkel44 0:65cfa4873284 35 CONTROL_MANUAL = 4
jmarkel44 0:65cfa4873284 36 } Control_t;
jmarkel44 0:65cfa4873284 37
jmarkel44 0:65cfa4873284 38
jmarkel44 0:65cfa4873284 39 // message data type
jmarkel44 0:65cfa4873284 40 typedef struct message_tag {
jmarkel44 0:65cfa4873284 41 Action_t action;
jmarkel44 0:65cfa4873284 42 Control_t control;
davidjhoward 31:4b1587034318 43 char controlFile[64];
jmarkel44 0:65cfa4873284 44 } Message_t;
jmarkel44 0:65cfa4873284 45
jmarkel44 56:225786c56315 46 typedef enum {
jmarkel44 56:225786c56315 47 OFF = 0,
jmarkel44 56:225786c56315 48 ON = 1
jmarkel44 56:225786c56315 49 } State;
jmarkel44 56:225786c56315 50
jmarkel44 63:0ded43237b22 51 typedef enum output_action {
jmarkel44 63:0ded43237b22 52 ACTION_NEW,
jmarkel44 71:34856d21f2bf 53 ACTION_CONTROL_ON,
jmarkel44 71:34856d21f2bf 54 ACTION_CONTROL_OFF,
jmarkel44 71:34856d21f2bf 55 ACTION_CONTROL_REGISTER,
jmarkel44 71:34856d21f2bf 56 ACTION_CONTROL_UNREGISTER
jmarkel44 63:0ded43237b22 57 } OutputAction;
jmarkel44 63:0ded43237b22 58
jmarkel44 51:66b820f203a5 59 // output control request message
jmarkel44 51:66b820f203a5 60 typedef struct output_control_req_t {
jmarkel44 63:0ded43237b22 61 OutputAction action;
jmarkel44 71:34856d21f2bf 62 char controlFile[32];
jmarkel44 71:34856d21f2bf 63 char output[12];
jmarkel44 71:34856d21f2bf 64 char id[32];
jmarkel44 56:225786c56315 65 State state;
jmarkel44 51:66b820f203a5 66 unsigned int priority;
jmarkel44 63:0ded43237b22 67 } OutputControlMsg_t;
jmarkel44 51:66b820f203a5 68
davidjhoward 58:a4422d19b2ea 69 // analytics logger request message
davidjhoward 58:a4422d19b2ea 70 typedef struct analytics_logger_req_t {
davidjhoward 58:a4422d19b2ea 71 char timestamp[32];
davidjhoward 58:a4422d19b2ea 72 char log_entry[96];
davidjhoward 58:a4422d19b2ea 73 } AnalyticsLoggerReq_t;
davidjhoward 58:a4422d19b2ea 74
davidjhoward 68:dbe39d83eb98 75 // analytics logger request message
davidjhoward 68:dbe39d83eb98 76 typedef struct cloud_data_hadler_req_t {
davidjhoward 68:dbe39d83eb98 77 char packet[96];
davidjhoward 68:dbe39d83eb98 78 } CloudDataHandlerReq_t;
davidjhoward 68:dbe39d83eb98 79
jmarkel44 0:65cfa4873284 80 extern Mail<Message_t, 16> MailBox;
davidjhoward 31:4b1587034318 81 extern Mail<Message_t, 16> ModbusMasterMailBox;
jmarkel44 63:0ded43237b22 82 extern Mail<OutputControlMsg_t, 16> OutputMasterMailBox;
davidjhoward 58:a4422d19b2ea 83 extern Mail<AnalyticsLoggerReq_t, 16> AnalyticsLoggerMailBox;
davidjhoward 68:dbe39d83eb98 84 extern Mail<CloudDataHandlerReq_t, 16> CloudDataHandlerMailBox;
jmarkel44 0:65cfa4873284 85
jmarkel44 0:65cfa4873284 86 extern ntshell_t ntshell;
jmarkel44 0:65cfa4873284 87
jmarkel44 0:65cfa4873284 88 extern int func_read(char *buf, int cnt);
jmarkel44 0:65cfa4873284 89 extern int func_write(const char *buf, int cnt);
jmarkel44 0:65cfa4873284 90 extern int func_cb_ntshell(const char *text);
jmarkel44 0:65cfa4873284 91 extern void func_cb_ntopt(int argc, char **argv);
davidjhoward 7:c0c03193612d 92 extern mDot *GLOBAL_mdot;
jmarkel44 0:65cfa4873284 93
davidjhoward 9:ef0ca2f8a8a6 94 struct ModbusRegister {
davidjhoward 9:ef0ca2f8a8a6 95 std::string name;
davidjhoward 9:ef0ca2f8a8a6 96 std::string units;
davidjhoward 9:ef0ca2f8a8a6 97 double min;
davidjhoward 9:ef0ca2f8a8a6 98 double max;
davidjhoward 9:ef0ca2f8a8a6 99 int node;
davidjhoward 9:ef0ca2f8a8a6 100 int reg;
davidjhoward 9:ef0ca2f8a8a6 101 int rtype;
davidjhoward 9:ef0ca2f8a8a6 102 int type;
davidjhoward 15:a6ee32969e8e 103 int size;
davidjhoward 15:a6ee32969e8e 104 int order;
davidjhoward 49:0456ee2271be 105 int rfreq;
davidjhoward 9:ef0ca2f8a8a6 106 std::string fmt;
davidjhoward 15:a6ee32969e8e 107 float float_value;
davidjhoward 15:a6ee32969e8e 108 uint32_t uint32_value;
davidjhoward 15:a6ee32969e8e 109 uint16_t uint16_value;
davidjhoward 9:ef0ca2f8a8a6 110 };
davidjhoward 9:ef0ca2f8a8a6 111
davidjhoward 15:a6ee32969e8e 112 typedef enum byte_order {
davidjhoward 15:a6ee32969e8e 113 BigEndian = 0,
davidjhoward 15:a6ee32969e8e 114 LittleEndian = 1,
davidjhoward 15:a6ee32969e8e 115 BigEndianReverseWord = 2,
davidjhoward 15:a6ee32969e8e 116 LittleEndianReversWord = 3,
davidjhoward 15:a6ee32969e8e 117 } Byte_Order;
davidjhoward 9:ef0ca2f8a8a6 118
davidjhoward 15:a6ee32969e8e 119 extern std::map<std::string,ModbusRegister> ModbusRegisterMap;
davidjhoward 15:a6ee32969e8e 120
davidjhoward 58:a4422d19b2ea 121 extern I2C* i2c;
davidjhoward 58:a4422d19b2ea 122
jmarkel44 34:f345fdec711d 123 extern Thread *GLOBAL_analyticsLogger_thread;
jmarkel44 34:f345fdec711d 124 extern Thread *GLOBAL_modbusMaster_thread;
jmarkel44 34:f345fdec711d 125 extern Thread *GLOBAL_BLE_thread;
jmarkel44 34:f345fdec711d 126 extern Thread *GLOBAL_CDH_thread;
jmarkel44 34:f345fdec711d 127 extern Thread *GLOBAL_configHandler_thread;
jmarkel44 34:f345fdec711d 128 extern Thread *GLOBAL_controlTask_thread;
jmarkel44 48:1c7861d80d16 129 extern Thread *GLOBAL_outputTask_thread;
jmarkel44 34:f345fdec711d 130
davidjhoward 15:a6ee32969e8e 131 #endif