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@279:b60379a9eb1a, 2016-10-26 (annotated)
- Committer:
- davidjhoward
- Date:
- Wed Oct 26 21:02:04 2016 +0000
- Revision:
- 279:b60379a9eb1a
- Parent:
- 251:e730d7077e46
- Child:
- 282:2dc06137f1ec
Updates for BLE and added mailbox for BLE
Who changed what in which revision?
| User | Revision | Line number | New 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 | |
| davidjhoward | 149:950c90425f7c | 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 | 230:11765008ff3a | 19 | #define CONTROL_COMP_STR "control_comp_" | 
| jmarkel44 | 230:11765008ff3a | 20 | #define CONTROL_CA_STR "control_ca_" | 
| jmarkel44 | 250:1cd8ec63e9e9 | 21 | #define CONTROL_FS_STR "control_fs_" | 
| jmarkel44 | 74:03ccf04998b5 | 22 | |
| jmarkel44 | 218:e0c05b4f470b | 23 | // declare max file sizes | 
| jmarkel44 | 218:e0c05b4f470b | 24 | #define MAX_FILE_SIZE 350 | 
| jmarkel44 | 177:9ec90c8e3ce1 | 25 | |
| jmarkel44 | 218:e0c05b4f470b | 26 | // declare stack sizes | 
| davidjhoward | 237:ecf34419ce5d | 27 | #define MODBUS_MASTER_STACK_SIZE (1024 * 2) | 
| jmarkel44 | 245:6665796174c3 | 28 | #define OUTPUT_TASK_STACK_SIZE (1024 * 4) | 
| jmarkel44 | 218:e0c05b4f470b | 29 | #define CONFIG_HANDLER_STACK_SIZE (1024*4 + 512) | 
| jmarkel44 | 218:e0c05b4f470b | 30 | #define CONTROL_TASK_STACK_SIZE (1024) | 
| davidjhoward | 248:e156e33b8b38 | 31 | #define BLE_DATA_HANDLER_STACK_SIZE (1024 * 2) | 
| davidjhoward | 246:ca91a441b4dc | 32 | #define CLOUD_DATA_HANDLER_STACK_SIZE (1024 * 4) | 
| jmarkel44 | 219:2b6c5782f291 | 33 | #define ANALYTICS_LOGGER_STACK_SIZE (1024 * 2) | 
| jmarkel44 | 218:e0c05b4f470b | 34 | |
| jmarkel44 | 75:96512ccc0443 | 35 | extern int sig_output_continue; | 
| jmarkel44 | 75:96512ccc0443 | 36 | extern int sig_config_continue; | 
| jmarkel44 | 75:96512ccc0443 | 37 | |
| jmarkel44 | 3:8ea4db957749 | 38 | extern osThreadId mainThreadId; | 
| jmarkel44 | 0:65cfa4873284 | 39 | |
| jmarkel44 | 0:65cfa4873284 | 40 | typedef enum action_tag { | 
| jmarkel44 | 0:65cfa4873284 | 41 | ACTION_CREATE, | 
| jmarkel44 | 0:65cfa4873284 | 42 | ACTION_MODIFY, | 
| davidjhoward | 31:4b1587034318 | 43 | ACTION_DESTROY, | 
| davidjhoward | 31:4b1587034318 | 44 | ACTION_READ_FILE, | 
| davidjhoward | 197:594afd088f32 | 45 | ACTION_EXEC_CMD | 
| jmarkel44 | 0:65cfa4873284 | 46 | } Action_t; | 
| jmarkel44 | 0:65cfa4873284 | 47 | |
| jmarkel44 | 0:65cfa4873284 | 48 | typedef enum control_tag { | 
| jmarkel44 | 0:65cfa4873284 | 49 | CONTROL_TIMER = 0, | 
| jmarkel44 | 0:65cfa4873284 | 50 | CONTROL_PID = 1, | 
| jmarkel44 | 0:65cfa4873284 | 51 | CONTROL_SETPOINT = 2, | 
| jmarkel44 | 0:65cfa4873284 | 52 | CONTROL_COMPOSITE = 3, | 
| jmarkel44 | 221:2a5e9902003c | 53 | CONTROL_MANUAL = 4, | 
| jmarkel44 | 250:1cd8ec63e9e9 | 54 | CONTROL_ALGORITHM = 5, | 
| jmarkel44 | 250:1cd8ec63e9e9 | 55 | CONTROL_FAILSAFE = 6 | 
| jmarkel44 | 0:65cfa4873284 | 56 | } Control_t; | 
| jmarkel44 | 0:65cfa4873284 | 57 | |
| jmarkel44 | 0:65cfa4873284 | 58 | |
| jmarkel44 | 0:65cfa4873284 | 59 | // message data type | 
| jmarkel44 | 0:65cfa4873284 | 60 | typedef struct message_tag { | 
| jmarkel44 | 0:65cfa4873284 | 61 | Action_t action; | 
| jmarkel44 | 0:65cfa4873284 | 62 | Control_t control; | 
| davidjhoward | 197:594afd088f32 | 63 | char controlFile[128]; | 
| jmarkel44 | 0:65cfa4873284 | 64 | } Message_t; | 
| jmarkel44 | 0:65cfa4873284 | 65 | |
| davidjhoward | 149:950c90425f7c | 66 | typedef enum { | 
| davidjhoward | 149:950c90425f7c | 67 | OFF = 0, | 
| davidjhoward | 149:950c90425f7c | 68 | ON = 1 | 
| davidjhoward | 149:950c90425f7c | 69 | } State; | 
| jmarkel44 | 56:225786c56315 | 70 | |
| jmarkel44 | 63:0ded43237b22 | 71 | typedef enum output_action { | 
| jmarkel44 | 63:0ded43237b22 | 72 | ACTION_NEW, | 
| jmarkel44 | 71:34856d21f2bf | 73 | ACTION_CONTROL_ON, | 
| jmarkel44 | 71:34856d21f2bf | 74 | ACTION_CONTROL_OFF, | 
| jmarkel44 | 71:34856d21f2bf | 75 | ACTION_CONTROL_REGISTER, | 
| jmarkel44 | 71:34856d21f2bf | 76 | ACTION_CONTROL_UNREGISTER | 
| jmarkel44 | 63:0ded43237b22 | 77 | } OutputAction; | 
| jmarkel44 | 63:0ded43237b22 | 78 | |
| davidjhoward | 149:950c90425f7c | 79 | // output control request message | 
| jmarkel44 | 51:66b820f203a5 | 80 | typedef struct output_control_req_t { | 
| jmarkel44 | 63:0ded43237b22 | 81 | OutputAction action; | 
| jmarkel44 | 115:1558e01d04c6 | 82 | Control_t controlType; | 
| jmarkel44 | 71:34856d21f2bf | 83 | char controlFile[32]; | 
| jmarkel44 | 115:1558e01d04c6 | 84 | char input_tag[32]; | 
| jmarkel44 | 115:1558e01d04c6 | 85 | char output_tag[32]; | 
| jmarkel44 | 71:34856d21f2bf | 86 | char id[32]; | 
| jmarkel44 | 51:66b820f203a5 | 87 | unsigned int priority; | 
| jmarkel44 | 63:0ded43237b22 | 88 | } OutputControlMsg_t; | 
| jmarkel44 | 51:66b820f203a5 | 89 | |
| davidjhoward | 149:950c90425f7c | 90 | // analytics logger request message | 
| davidjhoward | 58:a4422d19b2ea | 91 | typedef struct analytics_logger_req_t { | 
| davidjhoward | 58:a4422d19b2ea | 92 | char timestamp[32]; | 
| davidjhoward | 58:a4422d19b2ea | 93 | char log_entry[96]; | 
| davidjhoward | 58:a4422d19b2ea | 94 | } AnalyticsLoggerReq_t; | 
| davidjhoward | 58:a4422d19b2ea | 95 | |
| davidjhoward | 279:b60379a9eb1a | 96 | // analytics logger request message | 
| davidjhoward | 279:b60379a9eb1a | 97 | typedef struct ble_handler_req_t { | 
| davidjhoward | 279:b60379a9eb1a | 98 | char reply[500]; | 
| davidjhoward | 279:b60379a9eb1a | 99 | } BLEHandlerReq_t; | 
| davidjhoward | 279:b60379a9eb1a | 100 | |
| jmarkel44 | 0:65cfa4873284 | 101 | extern Mail<Message_t, 16> MailBox; | 
| davidjhoward | 31:4b1587034318 | 102 | extern Mail<Message_t, 16> ModbusMasterMailBox; | 
| jmarkel44 | 63:0ded43237b22 | 103 | extern Mail<OutputControlMsg_t, 16> OutputMasterMailBox; | 
| davidjhoward | 279:b60379a9eb1a | 104 | extern Mail<BLEHandlerReq_t, 1> BLEHandlerMailBox; | 
| jmarkel44 | 0:65cfa4873284 | 105 | |
| jmarkel44 | 0:65cfa4873284 | 106 | extern ntshell_t ntshell; | 
| jmarkel44 | 0:65cfa4873284 | 107 | |
| jmarkel44 | 0:65cfa4873284 | 108 | extern int func_read(char *buf, int cnt); | 
| jmarkel44 | 0:65cfa4873284 | 109 | extern int func_write(const char *buf, int cnt); | 
| jmarkel44 | 0:65cfa4873284 | 110 | extern int func_cb_ntshell(const char *text); | 
| jmarkel44 | 0:65cfa4873284 | 111 | extern void func_cb_ntopt(int argc, char **argv); | 
| davidjhoward | 7:c0c03193612d | 112 | extern mDot *GLOBAL_mdot; | 
| jmarkel44 | 0:65cfa4873284 | 113 | |
| davidjhoward | 149:950c90425f7c | 114 | typedef enum register_type_tag { | 
| davidjhoward | 149:950c90425f7c | 115 | REG_TYPE_NONE, | 
| davidjhoward | 149:950c90425f7c | 116 | REG_TYPE_INPUT, | 
| davidjhoward | 149:950c90425f7c | 117 | REG_TYPE_OUTPUT, | 
| davidjhoward | 149:950c90425f7c | 118 | REG_TYPE_VINPUT, | 
| davidjhoward | 149:950c90425f7c | 119 | REG_TYPE_VOUTPUT, | 
| davidjhoward | 149:950c90425f7c | 120 | } RegisterType_t; | 
| davidjhoward | 149:950c90425f7c | 121 | |
| davidjhoward | 9:ef0ca2f8a8a6 | 122 | struct ModbusRegister { | 
| davidjhoward | 9:ef0ca2f8a8a6 | 123 | std::string name; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 124 | std::string units; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 125 | double min; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 126 | double max; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 127 | int node; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 128 | int reg; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 129 | int rtype; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 130 | int type; | 
| davidjhoward | 15:a6ee32969e8e | 131 | int size; | 
| davidjhoward | 15:a6ee32969e8e | 132 | int order; | 
| davidjhoward | 49:0456ee2271be | 133 | int rfreq; | 
| davidjhoward | 149:950c90425f7c | 134 | RegisterType_t regType; | 
| davidjhoward | 149:950c90425f7c | 135 | std::string vcmd; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 136 | std::string fmt; | 
| davidjhoward | 15:a6ee32969e8e | 137 | float float_value; | 
| davidjhoward | 15:a6ee32969e8e | 138 | uint32_t uint32_value; | 
| davidjhoward | 15:a6ee32969e8e | 139 | uint16_t uint16_value; | 
| davidjhoward | 190:af7ab603c9fe | 140 | uint32_t errflag; | 
| davidjhoward | 82:f3e495a98877 | 141 | bool simulated; | 
| davidjhoward | 82:f3e495a98877 | 142 | }; | 
| davidjhoward | 82:f3e495a98877 | 143 | |
| davidjhoward | 149:950c90425f7c | 144 | struct VirtualCommand { | 
| davidjhoward | 214:52ef35bc44ec | 145 | float c; | 
| davidjhoward | 214:52ef35bc44ec | 146 | std::string tag; | 
| davidjhoward | 149:950c90425f7c | 147 | std::string opl; | 
| davidjhoward | 149:950c90425f7c | 148 | std::string opr; | 
| davidjhoward | 149:950c90425f7c | 149 | std::string op; | 
| davidjhoward | 149:950c90425f7c | 150 | }; | 
| davidjhoward | 149:950c90425f7c | 151 | |
| davidjhoward | 82:f3e495a98877 | 152 | struct SimulateInput { | 
| davidjhoward | 82:f3e495a98877 | 153 | float start_value; | 
| davidjhoward | 82:f3e495a98877 | 154 | float min; | 
| davidjhoward | 82:f3e495a98877 | 155 | float max; | 
| davidjhoward | 150:4db35c8234b4 | 156 | float up_step; | 
| davidjhoward | 150:4db35c8234b4 | 157 | float down_step; | 
| davidjhoward | 179:a31ea334e2b7 | 158 | bool moving_up; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 159 | }; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 160 | |
| davidjhoward | 15:a6ee32969e8e | 161 | typedef enum byte_order { | 
| davidjhoward | 15:a6ee32969e8e | 162 | BigEndian = 0, | 
| davidjhoward | 15:a6ee32969e8e | 163 | LittleEndian = 1, | 
| davidjhoward | 15:a6ee32969e8e | 164 | BigEndianReverseWord = 2, | 
| davidjhoward | 15:a6ee32969e8e | 165 | LittleEndianReversWord = 3, | 
| davidjhoward | 15:a6ee32969e8e | 166 | } Byte_Order; | 
| davidjhoward | 9:ef0ca2f8a8a6 | 167 | |
| davidjhoward | 104:ddf0a8bdaad7 | 168 | typedef enum event_reason_tag { | 
| davidjhoward | 104:ddf0a8bdaad7 | 169 | EVENT_REASON_AUTO, | 
| davidjhoward | 104:ddf0a8bdaad7 | 170 | EVENT_REASON_MANUAL, | 
| jmarkel44 | 133:c871de2d2b90 | 171 | EVENT_REASON_TIMER, | 
| davidjhoward | 104:ddf0a8bdaad7 | 172 | EVENT_REASON_FLOW, | 
| davidjhoward | 104:ddf0a8bdaad7 | 173 | EVENT_REASON_FAILSAFE, | 
| jmarkel44 | 128:534bf29132f8 | 174 | EVENT_REASON_NO_CONTROL | 
| davidjhoward | 104:ddf0a8bdaad7 | 175 | } EventReason_t; | 
| davidjhoward | 104:ddf0a8bdaad7 | 176 | |
| davidjhoward | 104:ddf0a8bdaad7 | 177 | typedef struct event_reason_struct_t { | 
| davidjhoward | 104:ddf0a8bdaad7 | 178 | EventReason_t eventReason; | 
| davidjhoward | 104:ddf0a8bdaad7 | 179 | char inputTag[32]; | 
| davidjhoward | 106:c0ddba334e93 | 180 | char outputTag[32]; | 
| davidjhoward | 104:ddf0a8bdaad7 | 181 | float inputValue; | 
| davidjhoward | 149:950c90425f7c | 182 | float outputValue; | 
| davidjhoward | 104:ddf0a8bdaad7 | 183 | } EventReasonStruct_t; | 
| davidjhoward | 104:ddf0a8bdaad7 | 184 | |
| davidjhoward | 15:a6ee32969e8e | 185 | extern std::map<std::string,ModbusRegister> ModbusRegisterMap; | 
| davidjhoward | 82:f3e495a98877 | 186 | extern std::map<std::string,SimulateInput> SimulateInputMap; | 
| davidjhoward | 15:a6ee32969e8e | 187 | |
| davidjhoward | 58:a4422d19b2ea | 188 | extern I2C* i2c; | 
| davidjhoward | 58:a4422d19b2ea | 189 | |
| jmarkel44 | 34:f345fdec711d | 190 | extern Thread *GLOBAL_analyticsLogger_thread; | 
| jmarkel44 | 34:f345fdec711d | 191 | extern Thread *GLOBAL_modbusMaster_thread; | 
| jmarkel44 | 34:f345fdec711d | 192 | extern Thread *GLOBAL_BLE_thread; | 
| jmarkel44 | 34:f345fdec711d | 193 | extern Thread *GLOBAL_CDH_thread; | 
| jmarkel44 | 34:f345fdec711d | 194 | extern Thread *GLOBAL_configHandler_thread; | 
| jmarkel44 | 34:f345fdec711d | 195 | extern Thread *GLOBAL_controlTask_thread; | 
| jmarkel44 | 48:1c7861d80d16 | 196 | extern Thread *GLOBAL_outputTask_thread; | 
| jmarkel44 | 34:f345fdec711d | 197 | |
| jmarkel44 | 185:5ac6ab1ed875 | 198 | #define RELAY_STATUS_AUTO_ON 129 | 
| jmarkel44 | 185:5ac6ab1ed875 | 199 | #define RELAY_STATUS_AUTO_OFF 128 | 
| jmarkel44 | 185:5ac6ab1ed875 | 200 | #define RELAY_STATUS_MANUAL_ON 65 | 
| jmarkel44 | 185:5ac6ab1ed875 | 201 | #define RELAY_STATUS_MANUAL_OFF 64 | 
| jmarkel44 | 185:5ac6ab1ed875 | 202 | #define RELAY_STATUS_FAILSAFE_ON 33 | 
| jmarkel44 | 185:5ac6ab1ed875 | 203 | #define RELAY_STATUS_FAILSAFE_OFF 32 | 
| jmarkel44 | 185:5ac6ab1ed875 | 204 | #define RELAY_STATUS_FORCED_OFF 16 | 
| jmarkel44 | 185:5ac6ab1ed875 | 205 | #define RELAY_STATUS_FLOW_FAILSAFE_ON 9 | 
| jmarkel44 | 185:5ac6ab1ed875 | 206 | #define RELAY_STATUS_FLOW_FAILSAFE_OFF 8 | 
| jmarkel44 | 185:5ac6ab1ed875 | 207 | #define RELAY_STATUS_NOT_CONTROLLED 0 | 
| jmarkel44 | 185:5ac6ab1ed875 | 208 | |
| davidjhoward | 190:af7ab603c9fe | 209 | // --------------------------------------------------------------------------------------------------------------------- | 
| davidjhoward | 190:af7ab603c9fe | 210 | // pinout | 
| davidjhoward | 190:af7ab603c9fe | 211 | |
| davidjhoward | 190:af7ab603c9fe | 212 | #define XBEE_P01 VIN // pin 01 | 
| davidjhoward | 190:af7ab603c9fe | 213 | #define MOD_TX PA_2 // pin 02 | 
| davidjhoward | 190:af7ab603c9fe | 214 | #define MOD_RX PA_3 // pin 03 | 
| davidjhoward | 190:af7ab603c9fe | 215 | #define SPI_MISO PA_6 // pin 04 | 
| davidjhoward | 190:af7ab603c9fe | 216 | #define XBEE_P05 NRST // pin 05 | 
| davidjhoward | 190:af7ab603c9fe | 217 | #define I2C_SCL PA_8 // pin 06 | 
| davidjhoward | 190:af7ab603c9fe | 218 | #define I2C_SDA PC_9 // pin 07 | 
| davidjhoward | 190:af7ab603c9fe | 219 | #define XBEE_P08 NC // pin 08 | 
| davidjhoward | 190:af7ab603c9fe | 220 | #define DMOD PA_11 // pin 09 | 
| davidjhoward | 190:af7ab603c9fe | 221 | #define XBEE_P10 GND // pin 10 | 
| davidjhoward | 190:af7ab603c9fe | 222 | |
| davidjhoward | 190:af7ab603c9fe | 223 | #define MOD_RE PB_1 // pin 20 | 
| davidjhoward | 190:af7ab603c9fe | 224 | #define MOD_DE PB_0 // pin 19 | 
| davidjhoward | 190:af7ab603c9fe | 225 | #define SPI_SCK PA_5 // pin 18 | 
| davidjhoward | 190:af7ab603c9fe | 226 | #define SPI_CS PA_4 // pin 17 | 
| davidjhoward | 190:af7ab603c9fe | 227 | #define DOUT2 PA_1 // pin 16 | 
| davidjhoward | 190:af7ab603c9fe | 228 | #define DOUT1 PC_1 // pin 15 | 
| davidjhoward | 190:af7ab603c9fe | 229 | #define XBEE_P14 NC // pin 14 | 
| davidjhoward | 190:af7ab603c9fe | 230 | #define DINP2 PC_13 // pin 13 | 
| davidjhoward | 190:af7ab603c9fe | 231 | #define DINP1 PA_0 // pin 12 | 
| davidjhoward | 190:af7ab603c9fe | 232 | #define SPI_MOSI PA_7 // pin 11 | 
| davidjhoward | 190:af7ab603c9fe | 233 | |
| davidjhoward | 190:af7ab603c9fe | 234 | #define XBEE_P21 VOUT | 
| davidjhoward | 190:af7ab603c9fe | 235 | #define XBEE_P22 GND | 
| davidjhoward | 190:af7ab603c9fe | 236 | #define XBEE_P23 PA_14 | 
| davidjhoward | 190:af7ab603c9fe | 237 | #define XBEE_P24 PA_13 | 
| davidjhoward | 190:af7ab603c9fe | 238 | #define XBEE_P25 PB_4 | 
| davidjhoward | 190:af7ab603c9fe | 239 | #define XBEE_P26 PB_3 | 
| davidjhoward | 190:af7ab603c9fe | 240 | #define CON_RX PA_10 | 
| davidjhoward | 190:af7ab603c9fe | 241 | #define CON_TX PA_9 | 
| davidjhoward | 190:af7ab603c9fe | 242 | |
| davidjhoward | 190:af7ab603c9fe | 243 | // --------------------------------------------------------------------------------------------------------------------- | 
| davidjhoward | 190:af7ab603c9fe | 244 | // globals | 
| davidjhoward | 190:af7ab603c9fe | 245 | |
| davidjhoward | 190:af7ab603c9fe | 246 | #define CON_BAUD 115200 | 
| davidjhoward | 190:af7ab603c9fe | 247 | #define MOD_BAUD 19200 | 
| davidjhoward | 190:af7ab603c9fe | 248 | |
| davidjhoward | 190:af7ab603c9fe | 249 | extern I2C* i2c; | 
| davidjhoward | 190:af7ab603c9fe | 250 | |
| davidjhoward | 190:af7ab603c9fe | 251 | // ------------------------------------------------------------------------------------------------- | 
| davidjhoward | 190:af7ab603c9fe | 252 | // typedefs | 
| davidjhoward | 190:af7ab603c9fe | 253 | |
| davidjhoward | 190:af7ab603c9fe | 254 | typedef struct word2byte { union | 
| davidjhoward | 190:af7ab603c9fe | 255 | { | 
| davidjhoward | 190:af7ab603c9fe | 256 | unsigned short int value; | 
| davidjhoward | 190:af7ab603c9fe | 257 | struct { unsigned char byte0; unsigned char byte1; }; | 
| davidjhoward | 190:af7ab603c9fe | 258 | };} | 
| davidjhoward | 190:af7ab603c9fe | 259 | WORD2BYTE; | 
| davidjhoward | 190:af7ab603c9fe | 260 | |
| davidjhoward | 190:af7ab603c9fe | 261 | typedef struct sint2byte { union | 
| davidjhoward | 190:af7ab603c9fe | 262 | { | 
| davidjhoward | 190:af7ab603c9fe | 263 | signed long int value; | 
| davidjhoward | 190:af7ab603c9fe | 264 | struct { unsigned short int word0; unsigned short int word1; }; | 
| davidjhoward | 190:af7ab603c9fe | 265 | struct { unsigned char byte0; unsigned char byte1; unsigned char byte2; unsigned char byte3; }; | 
| davidjhoward | 190:af7ab603c9fe | 266 | };} | 
| davidjhoward | 190:af7ab603c9fe | 267 | SINT2BYTE; | 
| davidjhoward | 190:af7ab603c9fe | 268 | |
| davidjhoward | 190:af7ab603c9fe | 269 | typedef struct uint2byte { union | 
| davidjhoward | 190:af7ab603c9fe | 270 | { | 
| davidjhoward | 190:af7ab603c9fe | 271 | unsigned long int value; | 
| davidjhoward | 190:af7ab603c9fe | 272 | struct { unsigned short int word0; unsigned short int word1; }; | 
| davidjhoward | 190:af7ab603c9fe | 273 | struct { unsigned char byte0; unsigned char byte1; unsigned char byte2; unsigned char byte3; }; | 
| davidjhoward | 190:af7ab603c9fe | 274 | };} | 
| davidjhoward | 190:af7ab603c9fe | 275 | UINT2BYTE; | 
| davidjhoward | 190:af7ab603c9fe | 276 | |
| davidjhoward | 190:af7ab603c9fe | 277 | typedef struct float2byte { union | 
| davidjhoward | 190:af7ab603c9fe | 278 | { | 
| davidjhoward | 190:af7ab603c9fe | 279 | float value; | 
| davidjhoward | 190:af7ab603c9fe | 280 | struct { unsigned short int word0; unsigned short int word1; }; | 
| davidjhoward | 190:af7ab603c9fe | 281 | struct { unsigned char byte0; unsigned char byte1; unsigned char byte2; unsigned char byte3; }; | 
| davidjhoward | 190:af7ab603c9fe | 282 | };} | 
| davidjhoward | 190:af7ab603c9fe | 283 | FLOAT2BYTE; | 
| davidjhoward | 190:af7ab603c9fe | 284 | |
| davidjhoward | 190:af7ab603c9fe | 285 | typedef struct float2uint { union | 
| davidjhoward | 190:af7ab603c9fe | 286 | { | 
| davidjhoward | 190:af7ab603c9fe | 287 | float value; | 
| davidjhoward | 190:af7ab603c9fe | 288 | unsigned long int uint_value; | 
| davidjhoward | 190:af7ab603c9fe | 289 | };} | 
| davidjhoward | 190:af7ab603c9fe | 290 | FLOAT2UINT; | 
| davidjhoward | 190:af7ab603c9fe | 291 | // ------------------------------------------------------------------------------------------------- | 
| davidjhoward | 190:af7ab603c9fe | 292 | |
| davidjhoward | 15:a6ee32969e8e | 293 | #endif | 
