MAX32625PICO LP0 mode

Dependencies:   SX1276GenericLib USBDevice

Fork of PICO_LP0 by Walter Luu

Committer:
walterluu
Date:
Mon Oct 12 21:55:22 2020 +0000
Revision:
3:85fc843a9d7d
Parent:
2:f6ae69f3bfce
Child:
5:9e751733a6f3
MAX20361 Demo Firmware version 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
walterluu 3:85fc843a9d7d 1
walterluu 0:664d9df11a00 2 #include "mbed.h"
walterluu 3:85fc843a9d7d 3
walterluu 3:85fc843a9d7d 4 // Board pins related
walterluu 0:664d9df11a00 5 #include "PinMap.h"
walterluu 0:664d9df11a00 6
walterluu 3:85fc843a9d7d 7 // LORA related
walterluu 3:85fc843a9d7d 8 #include "global_buffers.h"
walterluu 3:85fc843a9d7d 9 #include "GenericPingPong2.h"
walterluu 3:85fc843a9d7d 10 #define FEATURE_LORA
walterluu 3:85fc843a9d7d 11 #include "sx1276-mbed-hal.h"
walterluu 3:85fc843a9d7d 12
walterluu 3:85fc843a9d7d 13 #include "main.h"
walterluu 0:664d9df11a00 14
walterluu 3:85fc843a9d7d 15 // OT07 related
walterluu 3:85fc843a9d7d 16 #include "OT07_lib.h"
walterluu 3:85fc843a9d7d 17 #define CONVERT_T_DELAY 30
walterluu 3:85fc843a9d7d 18
walterluu 3:85fc843a9d7d 19 // MAX44009 related
walterluu 3:85fc843a9d7d 20 #include "MAX44009_lib.h"
walterluu 3:85fc843a9d7d 21
walterluu 3:85fc843a9d7d 22 // AO32 related
walterluu 3:85fc843a9d7d 23 #include "AO32_lib.h"
walterluu 3:85fc843a9d7d 24
walterluu 3:85fc843a9d7d 25 //#if defined(TARGET_MAX32630FTHR) // using the RFM95 board
walterluu 3:85fc843a9d7d 26 // #include "max32630fthr.h"
walterluu 3:85fc843a9d7d 27 // MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
walterluu 0:664d9df11a00 28 //#endif
walterluu 0:664d9df11a00 29
walterluu 3:85fc843a9d7d 30 // Virtual COM related
walterluu 3:85fc843a9d7d 31 #include "USBSerial.h" // for virtual COM
walterluu 0:664d9df11a00 32 #define BS 8 // ASCII Back Space
walterluu 0:664d9df11a00 33 #define CR 13 // ASCII Carriage Return
walterluu 0:664d9df11a00 34
walterluu 0:664d9df11a00 35 // Virtual serial port over USB TODO NEW VID PID NEEDED!!
walterluu 0:664d9df11a00 36 USBSerial pc(0x0B6A, 0x0042, 0x0001, false);
walterluu 0:664d9df11a00 37
walterluu 3:85fc843a9d7d 38 ///***************************************************************************
walterluu 3:85fc843a9d7d 39 // * Virtual COM Instantiation
walterluu 3:85fc843a9d7d 40 // **************************************************************************/
walterluu 3:85fc843a9d7d 41 //#include "USBSerial.h" // for virtual COM
walterluu 3:85fc843a9d7d 42 //#define BS 8 // ASCII Back Space
walterluu 3:85fc843a9d7d 43 //#define CR 13 // ASCII Carriage Return
walterluu 3:85fc843a9d7d 44 //// Virtual serial port over USB TODO NEW VID PID NEEDED!!
walterluu 3:85fc843a9d7d 45 //USBSerial pc(0x0B6A, 0x0042, 0x0001, false);
walterluu 3:85fc843a9d7d 46
walterluu 3:85fc843a9d7d 47 /***************************************************************************
walterluu 3:85fc843a9d7d 48 * LEDs Instantiation
walterluu 3:85fc843a9d7d 49 **************************************************************************/
walterluu 0:664d9df11a00 50 DigitalOut myled(LED2); // LED = LED2 green
walterluu 0:664d9df11a00 51 DigitalOut rLED(LED1); // red LED
walterluu 0:664d9df11a00 52 DigitalOut bLED(LED3); // blue LED
walterluu 3:85fc843a9d7d 53 //DigitalOut *led3;
walterluu 0:664d9df11a00 54
walterluu 3:85fc843a9d7d 55 /***************************************************************************
walterluu 3:85fc843a9d7d 56 * I2C Bus Instantiation
walterluu 3:85fc843a9d7d 57 **************************************************************************/
walterluu 3:85fc843a9d7d 58 I2C i2cBus0(P1_6, P1_7); // I2C of MAX32625PICO
walterluu 0:664d9df11a00 59
walterluu 0:664d9df11a00 60
walterluu 3:85fc843a9d7d 61 bool get_data_flag = false; // used for data tramission frequency
walterluu 0:664d9df11a00 62
walterluu 0:664d9df11a00 63
walterluu 3:85fc843a9d7d 64 //Timer setup
walterluu 3:85fc843a9d7d 65 Ticker timer_1; // timer for data tramission frequency
walterluu 3:85fc843a9d7d 66
walterluu 0:664d9df11a00 67
walterluu 3:85fc843a9d7d 68 void onTimerInterrupt(){
walterluu 3:85fc843a9d7d 69 get_data_flag = true;
walterluu 3:85fc843a9d7d 70 }
walterluu 0:664d9df11a00 71
walterluu 0:664d9df11a00 72 int main() {
walterluu 0:664d9df11a00 73
walterluu 3:85fc843a9d7d 74 /***************************************************************************
walterluu 0:664d9df11a00 75
walterluu 3:85fc843a9d7d 76
walterluu 3:85fc843a9d7d 77
walterluu 3:85fc843a9d7d 78 /* Setup begins here: */
walterluu 3:85fc843a9d7d 79 #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 80 pc.printf("MAX32625PICO: MASTER DEVICE\r\n");
walterluu 3:85fc843a9d7d 81 wait(1);
walterluu 3:85fc843a9d7d 82 #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 83 pc.printf("MAX32625PICO: SLAVE DEVICE\r\n");
walterluu 3:85fc843a9d7d 84 wait(1);
walterluu 3:85fc843a9d7d 85 #endif
walterluu 3:85fc843a9d7d 86
walterluu 3:85fc843a9d7d 87 /* Introduction text: */
walterluu 3:85fc843a9d7d 88 pc.printf("Welcome to the SX1276GenericLib\r\n");
walterluu 3:85fc843a9d7d 89 // wait(5);
walterluu 3:85fc843a9d7d 90 pc.printf("Starting a simple LoRa PingPong\r\n");
walterluu 3:85fc843a9d7d 91 // wait(5);
walterluu 3:85fc843a9d7d 92
walterluu 3:85fc843a9d7d 93 /***************************************************************************
walterluu 3:85fc843a9d7d 94 * Combined Payload Buffers for LoRa Communications
walterluu 3:85fc843a9d7d 95 **************************************************************************/
walterluu 3:85fc843a9d7d 96 uint8_t BufferTx[BufferSizeTx]; // more info in global_buffers.h
walterluu 3:85fc843a9d7d 97 uint8_t BufferRx[BufferSizeRx]; // more info in global_buffers.h
walterluu 3:85fc843a9d7d 98
walterluu 3:85fc843a9d7d 99 /***************************************************************************
walterluu 3:85fc843a9d7d 100 * Identification Buffers
walterluu 3:85fc843a9d7d 101 **************************************************************************/
walterluu 3:85fc843a9d7d 102 #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 103 uint8_t ID_of_slave[size_signature];
walterluu 3:85fc843a9d7d 104 #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 105 uint8_t ID_of_master[size_signature];
walterluu 3:85fc843a9d7d 106 #endif
walterluu 3:85fc843a9d7d 107
walterluu 3:85fc843a9d7d 108 /***************************************************************************
walterluu 3:85fc843a9d7d 109 * Dummy Data Buffers
walterluu 3:85fc843a9d7d 110 **************************************************************************/
walterluu 3:85fc843a9d7d 111 #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 112 uint8_t curr_dum_to_slave[size_of_dum];
walterluu 3:85fc843a9d7d 113 #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 114 uint8_t curr_dum_from_master[size_of_dum];
walterluu 3:85fc843a9d7d 115 uint8_t prev_dum_from_master[size_of_dum];
walterluu 3:85fc843a9d7d 116 #endif
walterluu 3:85fc843a9d7d 117
walterluu 3:85fc843a9d7d 118 /***************************************************************************
walterluu 3:85fc843a9d7d 119 * MAX30208 Data Buffers
walterluu 3:85fc843a9d7d 120 **************************************************************************/
walterluu 3:85fc843a9d7d 121 #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 122 // uint8_t curr_MAX77650_from_slave[size_of_MAX77650];
walterluu 3:85fc843a9d7d 123 uint8_t curr_raw_temp_from_slave[size_of_MAX30208];
walterluu 3:85fc843a9d7d 124 // uint8_t prev_MAX77650_from_slave[size_of_MAX77650];
walterluu 3:85fc843a9d7d 125 uint8_t prev_raw_temp_from_slave[size_of_MAX30208];
walterluu 3:85fc843a9d7d 126 // bool chrg_status = false;; //True = ON False = OFF
walterluu 3:85fc843a9d7d 127 #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 128 // uint8_t curr_MAX77650_to_master[size_of_MAX77650];
walterluu 3:85fc843a9d7d 129 // bool chrg_status = false; //True = ON False = OFF
walterluu 3:85fc843a9d7d 130 uint8_t curr_raw_temp_to_master[size_of_MAX30208];
walterluu 3:85fc843a9d7d 131 #endif
walterluu 3:85fc843a9d7d 132
walterluu 0:664d9df11a00 133
walterluu 3:85fc843a9d7d 134 /***************************************************************************
walterluu 3:85fc843a9d7d 135 * MAX44009 Data Buffers
walterluu 3:85fc843a9d7d 136 **************************************************************************/
walterluu 3:85fc843a9d7d 137 #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 138 uint8_t curr_raw_light_from_slave[size_of_MAX44009];
walterluu 3:85fc843a9d7d 139 uint8_t prev_raw_light_from_slave[size_of_MAX44009];
walterluu 3:85fc843a9d7d 140 // static int16_t conv_frame_data_from_slave[64];
walterluu 3:85fc843a9d7d 141 #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 142 uint8_t curr_raw_light_to_master[size_of_MAX44009];
walterluu 3:85fc843a9d7d 143 // static char prev_raw_light_data_to_master[size_of_MAX44009];
walterluu 3:85fc843a9d7d 144 // static int16_t conv_frame_data_to_master[64];
walterluu 3:85fc843a9d7d 145 #endif
walterluu 3:85fc843a9d7d 146
walterluu 3:85fc843a9d7d 147 /***************************************************************************
walterluu 3:85fc843a9d7d 148 * MAX20361 Data Buffers
walterluu 3:85fc843a9d7d 149 **************************************************************************/
walterluu 3:85fc843a9d7d 150 #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 151 uint8_t curr_raw_AO32_from_slave[size_of_MAX20361];
walterluu 3:85fc843a9d7d 152 uint8_t prev_raw_AO32_from_slave[size_of_MAX20361];
walterluu 3:85fc843a9d7d 153 // static int16_t conv_frame_data_from_slave[64];
walterluu 3:85fc843a9d7d 154 #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 155 uint8_t curr_raw_AO32_to_master[size_of_MAX20361];
walterluu 3:85fc843a9d7d 156 // static char prev_raw_AO32_data_to_master[size_of_MAX20361];
walterluu 3:85fc843a9d7d 157 // static int16_t conv_frame_data_to_master[64];
walterluu 3:85fc843a9d7d 158 #endif
walterluu 0:664d9df11a00 159
walterluu 3:85fc843a9d7d 160 /***************************************************************************
walterluu 3:85fc843a9d7d 161 * Other Data Buffers
walterluu 3:85fc843a9d7d 162 **************************************************************************/
walterluu 3:85fc843a9d7d 163 #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 164 // uint8_t curr_raw_other_from_slave[size_of_other];
walterluu 3:85fc843a9d7d 165 // uint8_t prev_raw_other_from_slave[size_of_other];
walterluu 3:85fc843a9d7d 166 // static int16_t conv_frame_data_from_slave[64];
walterluu 3:85fc843a9d7d 167 #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 168 // uint8_t curr_raw_other_to_master[size_of_other];
walterluu 3:85fc843a9d7d 169 // static char prev_raw_other_data_to_master[size_of_other];
walterluu 3:85fc843a9d7d 170 // static int16_t conv_frame_data_to_master[64];
walterluu 3:85fc843a9d7d 171 #endif
walterluu 3:85fc843a9d7d 172
walterluu 3:85fc843a9d7d 173 /***************************************************************************
walterluu 3:85fc843a9d7d 174 * Finish Setting up LoRa Radios: This passes in pointers to Buffers to send
walterluu 3:85fc843a9d7d 175 **************************************************************************/
walterluu 3:85fc843a9d7d 176 SX1276PingPongSetup(BufferTx, BufferRx, &pc);
walterluu 3:85fc843a9d7d 177
walterluu 3:85fc843a9d7d 178 // Pointer Tutorials
walterluu 3:85fc843a9d7d 179 // https://www.tutorialspoint.com/cprogramming/c_pointers.htm
walterluu 3:85fc843a9d7d 180
walterluu 3:85fc843a9d7d 181 /***************************************************************************
walterluu 3:85fc843a9d7d 182 * Create Dummy Data For Master and Slave
walterluu 3:85fc843a9d7d 183 **************************************************************************/
walterluu 3:85fc843a9d7d 184 // Array Tutorials
walterluu 3:85fc843a9d7d 185 // http://www.cplusplus.com/doc/tutorial/arrays/
walterluu 3:85fc843a9d7d 186 #if MASTER == 1
walterluu 3:85fc843a9d7d 187 // curr_dum_to_slave[0] = {33, 34};
walterluu 3:85fc843a9d7d 188 curr_dum_to_slave[0] = 33;
walterluu 3:85fc843a9d7d 189 curr_dum_to_slave[1] = 34;
walterluu 3:85fc843a9d7d 190 #endif
walterluu 0:664d9df11a00 191
walterluu 3:85fc843a9d7d 192 #if SLAVE == 1
walterluu 3:85fc843a9d7d 193 // curr_raw_temp_to_master[size_of_MAX30208] = {10, 13, 15, 17, 19};
walterluu 3:85fc843a9d7d 194 curr_raw_temp_to_master[0] = 99;
walterluu 3:85fc843a9d7d 195 curr_raw_temp_to_master[1] = 99;
walterluu 3:85fc843a9d7d 196 // curr_raw_temp_to_master[2] = 15;
walterluu 3:85fc843a9d7d 197 // curr_raw_temp_to_master[3] = 17;
walterluu 3:85fc843a9d7d 198 // curr_raw_temp_to_master[4] = 19;
walterluu 3:85fc843a9d7d 199 // curr_raw_light_to_master[size_of_MAX44009] = {25, 26, 27, 28, 29};
walterluu 3:85fc843a9d7d 200 curr_raw_light_to_master[0] = 25;
walterluu 3:85fc843a9d7d 201 curr_raw_light_to_master[1] = 26;
walterluu 3:85fc843a9d7d 202 // curr_raw_light_to_master[2] = 27;
walterluu 3:85fc843a9d7d 203 // curr_raw_light_to_master[3] = 28;
walterluu 3:85fc843a9d7d 204 // curr_raw_light_to_master[4] = 29;
walterluu 3:85fc843a9d7d 205 // curr_raw_AO32_to_master[size_of_MAX20361] = {99, 100, 101, 102, 103};
walterluu 3:85fc843a9d7d 206 curr_raw_AO32_to_master[0] = 99;
walterluu 3:85fc843a9d7d 207 curr_raw_AO32_to_master[1] = 100;
walterluu 3:85fc843a9d7d 208 curr_raw_AO32_to_master[2] = 101;
walterluu 3:85fc843a9d7d 209 curr_raw_AO32_to_master[3] = 102;
walterluu 3:85fc843a9d7d 210 // curr_raw_AO32_to_master[4] = 103;
walterluu 3:85fc843a9d7d 211 // curr_raw_other_to_master[size_of_other] = {20, 30, 40, 50, 60, 70, 80};
walterluu 3:85fc843a9d7d 212 // curr_raw_other_to_master[0] = 20;
walterluu 3:85fc843a9d7d 213 // curr_raw_other_to_master[1] = 30;
walterluu 3:85fc843a9d7d 214 // curr_raw_other_to_master[2] = 40;
walterluu 3:85fc843a9d7d 215 // curr_raw_other_to_master[3] = 50;
walterluu 3:85fc843a9d7d 216 // curr_raw_other_to_master[4] = 60;
walterluu 3:85fc843a9d7d 217 // curr_raw_other_to_master[5] = 70;
walterluu 3:85fc843a9d7d 218 // curr_raw_other_to_master[6] = 80;
walterluu 3:85fc843a9d7d 219
walterluu 3:85fc843a9d7d 220
walterluu 3:85fc843a9d7d 221 #endif
walterluu 3:85fc843a9d7d 222
walterluu 3:85fc843a9d7d 223 /***************************************************************************
walterluu 3:85fc843a9d7d 224 * Loop Counter
walterluu 3:85fc843a9d7d 225 **************************************************************************/
walterluu 3:85fc843a9d7d 226 int loopCnt = 0;
walterluu 3:85fc843a9d7d 227
walterluu 3:85fc843a9d7d 228 #if SLAVE == 1
walterluu 3:85fc843a9d7d 229 //************* init ticker timer callbacks ****************
walterluu 3:85fc843a9d7d 230 timer_1.attach(&onTimerInterrupt, 3); //LED3 toggles every 3 seconds
walterluu 3:85fc843a9d7d 231
walterluu 3:85fc843a9d7d 232 //************* OT07 Variables ****************
walterluu 3:85fc843a9d7d 233 // char data[5];
walterluu 3:85fc843a9d7d 234 char rawtempdata[2];
walterluu 3:85fc843a9d7d 235 char OT07_i2c_add = 0xA0;
walterluu 3:85fc843a9d7d 236 // TempResponse T;
walterluu 3:85fc843a9d7d 237
walterluu 3:85fc843a9d7d 238 //************* MAX44009 Variables ****************
walterluu 3:85fc843a9d7d 239 char rawluxdata[2];
walterluu 3:85fc843a9d7d 240 char MAX44009_i2c_add = 0x96; // 0b1001 011x
walterluu 3:85fc843a9d7d 241
walterluu 3:85fc843a9d7d 242 //************* AO32 Variables ****************
walterluu 3:85fc843a9d7d 243 char rawOCVdata[2]; // only needs 1
walterluu 3:85fc843a9d7d 244 char rawCntdata[2];
walterluu 3:85fc843a9d7d 245 char AO32_i2c_add = 0x2A; // 0b0010 101x
walterluu 3:85fc843a9d7d 246
walterluu 3:85fc843a9d7d 247 #endif
walterluu 0:664d9df11a00 248
walterluu 3:85fc843a9d7d 249 while (1) {
walterluu 3:85fc843a9d7d 250
walterluu 3:85fc843a9d7d 251 // Application details:
walterluu 3:85fc843a9d7d 252 //1. Set a fixed timer.
walterluu 3:85fc843a9d7d 253 //2. Data sent from Master to Slave.
walterluu 3:85fc843a9d7d 254 //3. Display data and repeat from 1.
walterluu 3:85fc843a9d7d 255
walterluu 3:85fc843a9d7d 256
walterluu 3:85fc843a9d7d 257 #if SLAVE == 1
walterluu 3:85fc843a9d7d 258 if(get_data_flag) {
walterluu 3:85fc843a9d7d 259
walterluu 3:85fc843a9d7d 260 //reset the flag
walterluu 3:85fc843a9d7d 261 get_data_flag = false;
walterluu 3:85fc843a9d7d 262 pc.printf("Timer interval reached!\r\n");
walterluu 3:85fc843a9d7d 263
walterluu 3:85fc843a9d7d 264 /***************************************************************************
walterluu 3:85fc843a9d7d 265 * Temperature Sensor Data Measurement
walterluu 3:85fc843a9d7d 266 **************************************************************************/
walterluu 3:85fc843a9d7d 267 // obtain register hex values
walterluu 3:85fc843a9d7d 268 convert_temperature(&i2cBus0, OT07_i2c_add); //send OW convert selected device
walterluu 3:85fc843a9d7d 269 wait_ms(CONVERT_T_DELAY); //wait 20 ms for convert temperature to complete
walterluu 3:85fc843a9d7d 270 int temp_error = OT07_read_register(&i2cBus0, OT07_i2c_add, OT07_FIFO_DATA, rawtempdata, 2);
walterluu 3:85fc843a9d7d 271 pc.printf("OT07 add[%02X] data[%02X] data[%02X]\r\n", OT07_FIFO_DATA, rawtempdata[0], rawtempdata[1]);
walterluu 3:85fc843a9d7d 272
walterluu 3:85fc843a9d7d 273 //calculate temperature from data
walterluu 3:85fc843a9d7d 274 int count = (int)(rawtempdata[0]*256 + rawtempdata[1]);
walterluu 3:85fc843a9d7d 275 if (count >= 32768)count = count - 65536; // 2s comp
walterluu 3:85fc843a9d7d 276 double Temp = (double)count*0.005;
walterluu 3:85fc843a9d7d 277 pc.printf("OT07 temperature[%.3f] status[%d]\r\n", Temp, temp_error);
walterluu 3:85fc843a9d7d 278
walterluu 3:85fc843a9d7d 279 //fill raw temp data into the array
walterluu 3:85fc843a9d7d 280 curr_raw_temp_to_master[0] = rawtempdata[0];
walterluu 3:85fc843a9d7d 281 curr_raw_temp_to_master[1] = rawtempdata[1];
walterluu 3:85fc843a9d7d 282
walterluu 3:85fc843a9d7d 283 // for (int i = 0; i < 3; i++) {
walterluu 3:85fc843a9d7d 284 // convert_temperature(&i2cBus0, i2c_add); //send OW convert selected device
walterluu 3:85fc843a9d7d 285 // wait_ms(CONVERT_T_DELAY); //wait 20 ms for convert temperature to complete
walterluu 3:85fc843a9d7d 286 // T = get_temperature(&i2cBus0, i2c_add);
walterluu 3:85fc843a9d7d 287 // pc.printf("OT07 temperature[%.3f] status[%d]\r\n", T.tempC, T.status);
walterluu 3:85fc843a9d7d 288 // }
walterluu 0:664d9df11a00 289
walterluu 3:85fc843a9d7d 290 /***************************************************************************
walterluu 3:85fc843a9d7d 291 * Light Intensity Sensor Data Measurement
walterluu 3:85fc843a9d7d 292 **************************************************************************/
walterluu 3:85fc843a9d7d 293 // obtain register hex values
walterluu 3:85fc843a9d7d 294 // int lux_error = MAX44009_read_lux_register(&i2cBus0, MAX44009_i2c_add, MAX44009_LUX_HI, rawluxdata);
walterluu 3:85fc843a9d7d 295 int lux_error1 = MAX44009_read_register(&i2cBus0, MAX44009_i2c_add, MAX44009_LUX_HI, &rawluxdata[0]);
walterluu 3:85fc843a9d7d 296 int lux_error2 = MAX44009_read_register(&i2cBus0, MAX44009_i2c_add, MAX44009_LUX_LO, &rawluxdata[1]);
walterluu 3:85fc843a9d7d 297 pc.printf("MAX44009 hi_add[%02X] hi_data[%02X] lo_add[%02X] lo_data[%02X]\r\n", MAX44009_LUX_HI, rawluxdata[0], MAX44009_LUX_LO, rawluxdata[1]);
walterluu 3:85fc843a9d7d 298
walterluu 3:85fc843a9d7d 299 //calculate temperature from data
walterluu 3:85fc843a9d7d 300 int exponent = int(rawluxdata[0] >> 4);
walterluu 3:85fc843a9d7d 301 int mantissa = int(rawluxdata[0] << 4) + int(rawluxdata[1]);
walterluu 3:85fc843a9d7d 302 double lux = 0.045 * mantissa * pow((double) 2, exponent);
walterluu 3:85fc843a9d7d 303 pc.printf("MAX44009 exponent[%d] mantissa[%d]\r\n", exponent, mantissa);
walterluu 3:85fc843a9d7d 304 pc.printf("MAX44009 lux[%f] status[%d] status[%d]\r\n", lux, lux_error1, lux_error2);
walterluu 3:85fc843a9d7d 305
walterluu 3:85fc843a9d7d 306 //fill raw lux data into the array
walterluu 3:85fc843a9d7d 307 // curr_raw_light_to_master[0] = rawluxdata[0];
walterluu 3:85fc843a9d7d 308 // curr_raw_light_to_master[1] = rawluxdata[1];
walterluu 3:85fc843a9d7d 309
walterluu 3:85fc843a9d7d 310
walterluu 3:85fc843a9d7d 311 /***************************************************************************
walterluu 3:85fc843a9d7d 312 * Solar Harvester Data Measurement
walterluu 3:85fc843a9d7d 313 **************************************************************************/
walterluu 3:85fc843a9d7d 314 // obtain register hex values
walterluu 3:85fc843a9d7d 315 char AO32ID[2];
walterluu 3:85fc843a9d7d 316 int id_error = AO32_read_register(&i2cBus0, AO32_i2c_add, AO32_DEVICE_ID, AO32ID); // testing
walterluu 3:85fc843a9d7d 317 pc.printf("AO32 add[%02X] data[%02X]\r\n", AO32_DEVICE_ID, AO32ID[0]); // should be 0x00: 0x11
walterluu 3:85fc843a9d7d 318
walterluu 3:85fc843a9d7d 319 int ocv_error = AO32_read_register(&i2cBus0, AO32_i2c_add, AO32_VOC, rawOCVdata);
walterluu 3:85fc843a9d7d 320 pc.printf("AO32 add[%02X] data[%02X]\r\n", AO32_VOC, rawOCVdata[0]);
walterluu 3:85fc843a9d7d 321 int cnt_error = AO32_read_register(&i2cBus0, AO32_i2c_add, AO32_HARV_H, rawCntdata, 2); // burst read 2 bytes
walterluu 3:85fc843a9d7d 322 pc.printf("AO32 hi_add[%02X] hi_data[%02X] lo_add[%02X] lo_data[%02X]\r\n", AO32_HARV_H, rawCntdata[0], AO32_HARV_L, rawCntdata[1]);
walterluu 3:85fc843a9d7d 323
walterluu 3:85fc843a9d7d 324 //calculate open circuit voltage from data
walterluu 3:85fc843a9d7d 325 double voltage = int(rawOCVdata[0]) / 100;
walterluu 3:85fc843a9d7d 326 pc.printf("AO32 OCV[%.2f] status[%d]\r\n", voltage, ocv_error);
walterluu 3:85fc843a9d7d 327
walterluu 3:85fc843a9d7d 328 //calculate harvesting counts from data
walterluu 3:85fc843a9d7d 329 int countHi = int(rawCntdata[0] << 8); // might cause trouble, * 256 instead?
walterluu 3:85fc843a9d7d 330 int countLo = int(rawCntdata[1]);
walterluu 3:85fc843a9d7d 331 int harvest_counts = countHi + countLo;
walterluu 3:85fc843a9d7d 332 pc.printf("AO32 HarvesterCnt[%d] status[%d]\r\n", harvest_counts, cnt_error);
walterluu 3:85fc843a9d7d 333
walterluu 3:85fc843a9d7d 334 //fill raw AO32 data into the array
walterluu 3:85fc843a9d7d 335 // curr_raw_AO32_to_master[0] = rawOCVdata[0]; // Fill OCV hex first
walterluu 3:85fc843a9d7d 336 // curr_raw_AO32_to_master[1] = rawCntdata[0]; // Fill Harvesting count high byte
walterluu 3:85fc843a9d7d 337 // curr_raw_AO32_to_master[2] = rawCntdata[1]; // Fill Harvesting count low byte
walterluu 0:664d9df11a00 338
walterluu 3:85fc843a9d7d 339 /***************************************************************************
walterluu 3:85fc843a9d7d 340 * Fill Payload Buffer With Data From Main Program Buffers for next LoRa Transmition
walterluu 3:85fc843a9d7d 341 **************************************************************************/
walterluu 3:85fc843a9d7d 342 memcpy(&BufferTx[tx_idx_signature], PongMsg, size_signature);
walterluu 3:85fc843a9d7d 343 memcpy(&BufferTx[tx_idx_MAX30208], curr_raw_temp_to_master, size_of_MAX30208);
walterluu 3:85fc843a9d7d 344 memcpy(&BufferTx[tx_idx_MAX44009], curr_raw_light_to_master, size_of_MAX44009);
walterluu 3:85fc843a9d7d 345 memcpy(&BufferTx[tx_idx_MAX20361], curr_raw_AO32_to_master, size_of_MAX20361);
walterluu 3:85fc843a9d7d 346 // memcpy(&BufferTx[tx_idx_other], curr_raw_other_to_master, size_of_other);
walterluu 3:85fc843a9d7d 347
walterluu 3:85fc843a9d7d 348 /***************************************************************************
walterluu 3:85fc843a9d7d 349 * In case of OnRxTimeout
walterluu 3:85fc843a9d7d 350 **************************************************************************/
walterluu 3:85fc843a9d7d 351 // Slave Device, these are values when LoRa communication did not happen
walterluu 3:85fc843a9d7d 352 // ID_of_master[0] = 'N'; // 0x4E or 78
walterluu 3:85fc843a9d7d 353 // ID_of_master[1] = 'A'; // 0x41 or 65
walterluu 3:85fc843a9d7d 354 // ID_of_master[2] = 'C'; // 0x43 or 67
walterluu 3:85fc843a9d7d 355 // ID_of_master[3] = 'K'; // 0x4B or 75
walterluu 3:85fc843a9d7d 356 // ID_of_master[4] = 'M'; // 0x4D or 77
walterluu 3:85fc843a9d7d 357 // ID_of_master[5] = 'A'; // 0x41 or 65
walterluu 3:85fc843a9d7d 358 // ID_of_master[6] = 'S'; // 0x53 or 83
walterluu 3:85fc843a9d7d 359 // ID_of_master[7] = '!'; // 0x21 or 33
walterluu 3:85fc843a9d7d 360 //
walterluu 3:85fc843a9d7d 361 // curr_dum_from_master[0] = 39;
walterluu 3:85fc843a9d7d 362 // curr_dum_from_master[1] = 40;
walterluu 3:85fc843a9d7d 363
walterluu 3:85fc843a9d7d 364 /***************************************************************************
walterluu 3:85fc843a9d7d 365 * LoRa Communication: Send Sensor Data
walterluu 3:85fc843a9d7d 366 **************************************************************************/
walterluu 3:85fc843a9d7d 367 // SX1276SensorSend();
walterluu 3:85fc843a9d7d 368 SX1276PingPong();
walterluu 3:85fc843a9d7d 369 int sendTime = TimeOnAirSend();
walterluu 3:85fc843a9d7d 370 pc.printf("Tx Time on Air: %d \r\n", sendTime);
walterluu 3:85fc843a9d7d 371
walterluu 3:85fc843a9d7d 372 /***************************************************************************
walterluu 3:85fc843a9d7d 373 * Fill Main Program Buffers With Data From Received Payload Buffer
walterluu 3:85fc843a9d7d 374 **************************************************************************/
walterluu 3:85fc843a9d7d 375 // Slave Device
walterluu 3:85fc843a9d7d 376 memcpy(ID_of_master, &BufferRx[rx_idx_signature], size_signature);
walterluu 3:85fc843a9d7d 377 memcpy(curr_dum_from_master, &BufferRx[rx_idx_dum], size_of_dum);
walterluu 3:85fc843a9d7d 378
walterluu 3:85fc843a9d7d 379 /***************************************************************************
walterluu 3:85fc843a9d7d 380 * Slave Device: Print out Master Data
walterluu 3:85fc843a9d7d 381 **************************************************************************/
walterluu 3:85fc843a9d7d 382 // memcpy(ID_of_master, &BufferRx[rx_idx_signature], size_signature);
walterluu 3:85fc843a9d7d 383 pc.printf("Print ID_of_master\r\n");
walterluu 3:85fc843a9d7d 384 for(int i = 0; i < sizeof(ID_of_master); i++){
walterluu 3:85fc843a9d7d 385 pc.printf("%d \r\n", ID_of_master[i]);
walterluu 3:85fc843a9d7d 386 }
walterluu 3:85fc843a9d7d 387
walterluu 3:85fc843a9d7d 388 // memcpy(curr_dum_from_master, &BufferRx[rx_idx_dum], size_of_dum);
walterluu 3:85fc843a9d7d 389 // pc.printf("Print Dum From Master\r\n");
walterluu 3:85fc843a9d7d 390 // for(int i = 0; i < sizeof(curr_dum_from_master); i++){
walterluu 3:85fc843a9d7d 391 // pc.printf("%d \r\n", curr_dum_from_master[i]);
walterluu 3:85fc843a9d7d 392 // }
walterluu 3:85fc843a9d7d 393
walterluu 3:85fc843a9d7d 394 // print loop counter
walterluu 3:85fc843a9d7d 395 pc.printf("Loop Counter Slave: %d \r\n", loopCnt);
walterluu 3:85fc843a9d7d 396 loopCnt = loopCnt + 1;
walterluu 3:85fc843a9d7d 397 } // end of transmission frequency for slave
walterluu 3:85fc843a9d7d 398 #endif
walterluu 3:85fc843a9d7d 399
walterluu 3:85fc843a9d7d 400
walterluu 3:85fc843a9d7d 401 #if MASTER == 1
walterluu 3:85fc843a9d7d 402 /***************************************************************************
walterluu 3:85fc843a9d7d 403 * Fill Payload Buffer With Data From Main Program Buffers for next LoRa Transmition
walterluu 3:85fc843a9d7d 404 **************************************************************************/
walterluu 3:85fc843a9d7d 405 memcpy(&BufferTx[tx_idx_signature], PingMsg, size_signature);
walterluu 3:85fc843a9d7d 406 memcpy(&BufferTx[tx_idx_dum], curr_dum_to_slave, size_of_dum);
walterluu 3:85fc843a9d7d 407
walterluu 3:85fc843a9d7d 408 /***************************************************************************
walterluu 3:85fc843a9d7d 409 * LoRa Communication: Gateway Receive Sensor Data
walterluu 3:85fc843a9d7d 410 **************************************************************************/
walterluu 3:85fc843a9d7d 411 // SX1276GateWayReceive(333);
walterluu 3:85fc843a9d7d 412 SX1276PingPong();
walterluu 3:85fc843a9d7d 413 int sendTime = TimeOnAirSend();
walterluu 3:85fc843a9d7d 414 pc.printf("Tx Time on Air: %d \r\n", sendTime);
walterluu 3:85fc843a9d7d 415
walterluu 3:85fc843a9d7d 416 /***************************************************************************
walterluu 3:85fc843a9d7d 417 * Fill Main Program Buffers With Data From Received Payload Buffer
walterluu 3:85fc843a9d7d 418 **************************************************************************/
walterluu 3:85fc843a9d7d 419 memcpy(ID_of_slave, &BufferRx[rx_idx_signature], size_signature);
walterluu 3:85fc843a9d7d 420 memcpy(curr_raw_temp_from_slave, &BufferRx[rx_idx_MAX30208], size_of_MAX30208);
walterluu 3:85fc843a9d7d 421 memcpy(curr_raw_light_from_slave, &BufferRx[rx_idx_MAX44009], size_of_MAX44009);
walterluu 3:85fc843a9d7d 422 memcpy(curr_raw_AO32_from_slave, &BufferRx[rx_idx_MAX20361], size_of_MAX20361);
walterluu 3:85fc843a9d7d 423 // memcpy(curr_raw_other_from_slave, &BufferRx[rx_idx_other], size_of_other);
walterluu 3:85fc843a9d7d 424
walterluu 3:85fc843a9d7d 425 /***************************************************************************
walterluu 3:85fc843a9d7d 426 * Master Device: Print out Slave Data
walterluu 3:85fc843a9d7d 427 **************************************************************************/
walterluu 3:85fc843a9d7d 428
walterluu 3:85fc843a9d7d 429 // memcpy(ID_of_slave, &BufferRx[rx_idx_signature], size_signature);
walterluu 3:85fc843a9d7d 430 //pc.printf("Print ID_of_slave\r\n");
walterluu 3:85fc843a9d7d 431 // for(int i = 0; i < sizeof(ID_of_slave); i++){
walterluu 3:85fc843a9d7d 432 // pc.printf("%d \r\n", ID_of_slave[i]);
walterluu 3:85fc843a9d7d 433 // }
walterluu 3:85fc843a9d7d 434
walterluu 3:85fc843a9d7d 435 // memcpy(curr_raw_temp_from_slave, &BufferRx[rx_idx_MAX30208], size_of_MAX30208);
walterluu 3:85fc843a9d7d 436 pc.printf("Print MAX30208 data\r\n");
walterluu 3:85fc843a9d7d 437 for(int i = 0; i < sizeof(curr_raw_temp_from_slave); i++){
walterluu 3:85fc843a9d7d 438 pc.printf("%d \r\n", curr_raw_temp_from_slave[i]);
walterluu 0:664d9df11a00 439 }
walterluu 3:85fc843a9d7d 440
walterluu 3:85fc843a9d7d 441
walterluu 3:85fc843a9d7d 442 int count = curr_raw_temp_from_slave[0] * 256 + curr_raw_temp_from_slave[1];
walterluu 3:85fc843a9d7d 443 if (count >= 32768)count = count - 65536; // 2s comp
walterluu 3:85fc843a9d7d 444 double tempResult = count * 0.005;
walterluu 3:85fc843a9d7d 445 // pc.printf("OT07 temperature[%.3f] status[%d]\r\n", Temp, error);
walterluu 3:85fc843a9d7d 446 pc.printf("MSG: [%.3f] [] [] [] []\r\n", tempResult);
walterluu 3:85fc843a9d7d 447
walterluu 3:85fc843a9d7d 448
walterluu 3:85fc843a9d7d 449 // memcpy(curr_raw_light_from_slave, &BufferRx[rx_idx_MAX44009], size_of_MAX44009);
walterluu 3:85fc843a9d7d 450 // pc.printf("Print MAX44009 data\r\n");
walterluu 3:85fc843a9d7d 451 // for(int i = 0; i < sizeof(curr_raw_light_from_slave); i++){
walterluu 3:85fc843a9d7d 452 // pc.printf("%d \r\n", curr_raw_light_from_slave[i]);
walterluu 3:85fc843a9d7d 453 // }
walterluu 3:85fc843a9d7d 454
walterluu 3:85fc843a9d7d 455 // memcpy(curr_raw_AO32_from_slave, &BufferRx[rx_idx_MAX20361], size_of_MAX20361);
walterluu 3:85fc843a9d7d 456 //pc.printf("Print MAX20361 data\r\n");
walterluu 3:85fc843a9d7d 457 // for(int i = 0; i < sizeof(curr_raw_AO32_from_slave); i++){
walterluu 3:85fc843a9d7d 458 // pc.printf("%d \r\n", curr_raw_AO32_from_slave[i]);
walterluu 3:85fc843a9d7d 459 // }
walterluu 3:85fc843a9d7d 460
walterluu 3:85fc843a9d7d 461 // memcpy(curr_raw_other_from_slave, &BufferRx[rx_idx_other], size_of_other);
walterluu 3:85fc843a9d7d 462 //pc.printf("Print Other data\r\n");
walterluu 3:85fc843a9d7d 463 // for(int i = 0; i < sizeof(curr_raw_other_from_slave); i++){
walterluu 3:85fc843a9d7d 464 // pc.printf("%d \r\n", curr_raw_other_from_slave[i]);
walterluu 3:85fc843a9d7d 465 // }
walterluu 3:85fc843a9d7d 466
walterluu 3:85fc843a9d7d 467 // print loop counter
walterluu 3:85fc843a9d7d 468 pc.printf("Loop Counter Master: %d \r\n", loopCnt);
walterluu 3:85fc843a9d7d 469 loopCnt = loopCnt + 1;
walterluu 3:85fc843a9d7d 470
walterluu 3:85fc843a9d7d 471 // wait(3);
walterluu 3:85fc843a9d7d 472
walterluu 3:85fc843a9d7d 473 #endif
walterluu 3:85fc843a9d7d 474
walterluu 3:85fc843a9d7d 475 ///***************************************************************************
walterluu 3:85fc843a9d7d 476 // * Fill Payload Buffer With Data From Main Program Buffers for next LoRa Transmition
walterluu 3:85fc843a9d7d 477 // **************************************************************************/
walterluu 3:85fc843a9d7d 478 // #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 479 // memcpy(&BufferTx[tx_idx_signature], PingMsg, size_signature);
walterluu 3:85fc843a9d7d 480 // memcpy(&BufferTx[tx_idx_dum], curr_dum_to_slave, size_of_dum);
walterluu 3:85fc843a9d7d 481 // #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 482 // memcpy(&BufferTx[tx_idx_signature], PongMsg, size_signature);
walterluu 3:85fc843a9d7d 483 // memcpy(&BufferTx[tx_idx_MAX30208], curr_raw_temp_to_master, size_of_MAX30208);
walterluu 3:85fc843a9d7d 484 // memcpy(&BufferTx[tx_idx_MAX44009], curr_raw_light_to_master, size_of_MAX44009);
walterluu 3:85fc843a9d7d 485 // memcpy(&BufferTx[tx_idx_MAX20361], curr_raw_AO32_to_master, size_of_MAX20361);
walterluu 3:85fc843a9d7d 486 // memcpy(&BufferTx[tx_idx_other], curr_raw_other_to_master, size_of_other);
walterluu 3:85fc843a9d7d 487 // #endif
walterluu 3:85fc843a9d7d 488 //
walterluu 3:85fc843a9d7d 489 // /***************************************************************************
walterluu 3:85fc843a9d7d 490 // * In case of OnRxTimeout
walterluu 3:85fc843a9d7d 491 // **************************************************************************/
walterluu 3:85fc843a9d7d 492 // #if MASTER == 1 // Master Device, these are values when LoRa communication did not happen
walterluu 3:85fc843a9d7d 493 // ID_of_slave[0] = 10; //
walterluu 3:85fc843a9d7d 494 // ID_of_slave[1] = 11; //
walterluu 3:85fc843a9d7d 495 // ID_of_slave[2] = 12; //
walterluu 3:85fc843a9d7d 496 // ID_of_slave[3] = 13; //
walterluu 3:85fc843a9d7d 497 // ID_of_slave[4] = 14; //
walterluu 3:85fc843a9d7d 498 // ID_of_slave[5] = 15; //
walterluu 3:85fc843a9d7d 499 // ID_of_slave[6] = 16; //
walterluu 3:85fc843a9d7d 500 // ID_of_slave[7] = 17; //
walterluu 3:85fc843a9d7d 501 //
walterluu 3:85fc843a9d7d 502 // #elif SLAVE == 1 // Slave Device, these are values when LoRa communication did not happen
walterluu 3:85fc843a9d7d 503 // ID_of_master[0] = 'N'; // 0x4E or 78
walterluu 3:85fc843a9d7d 504 // ID_of_master[1] = 'A'; // 0x41 or 65
walterluu 3:85fc843a9d7d 505 // ID_of_master[2] = 'C'; // 0x43 or 67
walterluu 3:85fc843a9d7d 506 // ID_of_master[3] = 'K'; // 0x4B or 75
walterluu 3:85fc843a9d7d 507 // ID_of_master[4] = 'M'; // 0x4D or 77
walterluu 3:85fc843a9d7d 508 // ID_of_master[5] = 'A'; // 0x41 or 65
walterluu 3:85fc843a9d7d 509 // ID_of_master[6] = 'S'; // 0x53 or 83
walterluu 3:85fc843a9d7d 510 // ID_of_master[7] = '!'; // 0x21 or 33
walterluu 3:85fc843a9d7d 511 //
walterluu 3:85fc843a9d7d 512 // curr_dum_from_master[0] = 39;
walterluu 3:85fc843a9d7d 513 // curr_dum_from_master[1] = 40;
walterluu 3:85fc843a9d7d 514 //
walterluu 3:85fc843a9d7d 515 // #endif
walterluu 3:85fc843a9d7d 516 //
walterluu 3:85fc843a9d7d 517 //
walterluu 3:85fc843a9d7d 518 // /***************************************************************************
walterluu 3:85fc843a9d7d 519 // * Lora Communications
walterluu 3:85fc843a9d7d 520 // **************************************************************************/
walterluu 3:85fc843a9d7d 521 // #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 522 // SX1276GateWayReceive();
walterluu 3:85fc843a9d7d 523 //
walterluu 3:85fc843a9d7d 524 // #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 525 // SX1276SensorSend();
walterluu 3:85fc843a9d7d 526 // int sendTime = TimeOnAirSend();
walterluu 3:85fc843a9d7d 527 // pc.printf("Tx Time on Air: %d \r\n", sendTime);
walterluu 3:85fc843a9d7d 528 // #endif
walterluu 3:85fc843a9d7d 529 //
walterluu 3:85fc843a9d7d 530 //// SX1276PingPong(); // what changes here?
walterluu 3:85fc843a9d7d 531 //
walterluu 3:85fc843a9d7d 532 //
walterluu 3:85fc843a9d7d 533 // /***************************************************************************
walterluu 3:85fc843a9d7d 534 // * Fill Main Program Buffers With Data From Received Payload Buffer
walterluu 3:85fc843a9d7d 535 // **************************************************************************/
walterluu 3:85fc843a9d7d 536 // /* The master and slave devices will have different requirements for offloading payload */
walterluu 3:85fc843a9d7d 537 // #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 538 // memcpy(ID_of_slave, &BufferRx[rx_idx_signature], size_signature);
walterluu 3:85fc843a9d7d 539 // memcpy(curr_raw_temp_from_slave, &BufferRx[rx_idx_MAX30208], size_of_MAX30208);
walterluu 3:85fc843a9d7d 540 // memcpy(curr_raw_light_from_slave, &BufferRx[rx_idx_MAX44009], size_of_MAX44009);
walterluu 3:85fc843a9d7d 541 // memcpy(curr_raw_AO32_from_slave, &BufferRx[rx_idx_MAX20361], size_of_MAX20361);
walterluu 3:85fc843a9d7d 542 // memcpy(curr_raw_other_from_slave, &BufferRx[rx_idx_other], size_of_other);
walterluu 3:85fc843a9d7d 543 // #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 544 // memcpy(ID_of_master, &BufferRx[rx_idx_signature], size_signature);
walterluu 3:85fc843a9d7d 545 // memcpy(curr_dum_from_master, &BufferRx[rx_idx_dum], size_of_dum);
walterluu 3:85fc843a9d7d 546 // #endif
walterluu 3:85fc843a9d7d 547 //
walterluu 3:85fc843a9d7d 548 //
walterluu 3:85fc843a9d7d 549 // /***************************************************************************
walterluu 3:85fc843a9d7d 550 // * Print Out Data Received
walterluu 3:85fc843a9d7d 551 // **************************************************************************/
walterluu 3:85fc843a9d7d 552 // #if MASTER == 1 // Master Device
walterluu 3:85fc843a9d7d 553 //
walterluu 3:85fc843a9d7d 554 //// memcpy(ID_of_slave, &BufferRx[rx_idx_signature], size_signature);
walterluu 3:85fc843a9d7d 555 // pc.printf("Print ID_of_slave\r\n");
walterluu 3:85fc843a9d7d 556 // for(int i = 0; i < sizeof(ID_of_slave); i++){
walterluu 3:85fc843a9d7d 557 // pc.printf("%d \r\n", ID_of_slave[i]);
walterluu 3:85fc843a9d7d 558 // }
walterluu 3:85fc843a9d7d 559 //
walterluu 3:85fc843a9d7d 560 //// memcpy(curr_raw_temp_from_slave, &BufferRx[rx_idx_MAX30208], size_of_MAX30208);
walterluu 3:85fc843a9d7d 561 // pc.printf("Print MAX30208 data\r\n");
walterluu 3:85fc843a9d7d 562 // for(int i = 0; i < sizeof(curr_raw_temp_from_slave); i++){
walterluu 3:85fc843a9d7d 563 // pc.printf("%d \r\n", curr_raw_temp_from_slave[i]);
walterluu 3:85fc843a9d7d 564 // }
walterluu 3:85fc843a9d7d 565 //
walterluu 3:85fc843a9d7d 566 //// memcpy(curr_raw_light_from_slave, &BufferRx[rx_idx_MAX44009], size_of_MAX44009);
walterluu 3:85fc843a9d7d 567 // pc.printf("Print MAX44009 data\r\n");
walterluu 3:85fc843a9d7d 568 // for(int i = 0; i < sizeof(curr_raw_light_from_slave); i++){
walterluu 3:85fc843a9d7d 569 // pc.printf("%d \r\n", curr_raw_light_from_slave[i]);
walterluu 3:85fc843a9d7d 570 // }
walterluu 3:85fc843a9d7d 571 //
walterluu 3:85fc843a9d7d 572 //// memcpy(curr_raw_AO32_from_slave, &BufferRx[rx_idx_MAX20361], size_of_MAX20361);
walterluu 3:85fc843a9d7d 573 // pc.printf("Print MAX20361 data\r\n");
walterluu 3:85fc843a9d7d 574 // for(int i = 0; i < sizeof(curr_raw_AO32_from_slave); i++){
walterluu 3:85fc843a9d7d 575 // pc.printf("%d \r\n", curr_raw_AO32_from_slave[i]);
walterluu 3:85fc843a9d7d 576 // }
walterluu 3:85fc843a9d7d 577 //
walterluu 3:85fc843a9d7d 578 //// memcpy(curr_raw_other_from_slave, &BufferRx[rx_idx_other], size_of_other);
walterluu 3:85fc843a9d7d 579 // pc.printf("Print Other data\r\n");
walterluu 3:85fc843a9d7d 580 // for(int i = 0; i < sizeof(curr_raw_other_from_slave); i++){
walterluu 3:85fc843a9d7d 581 // pc.printf("%d \r\n", curr_raw_other_from_slave[i]);
walterluu 3:85fc843a9d7d 582 // }
walterluu 3:85fc843a9d7d 583 //
walterluu 3:85fc843a9d7d 584 // // print loop counter
walterluu 3:85fc843a9d7d 585 // pc.printf("Loop Counter Master: %d \r\n", loopCnt);
walterluu 3:85fc843a9d7d 586 // loopCnt = loopCnt + 1;
walterluu 3:85fc843a9d7d 587 //
walterluu 3:85fc843a9d7d 588 // #elif SLAVE == 1 // Slave Device
walterluu 3:85fc843a9d7d 589 //// memcpy(ID_of_master, &BufferRx[rx_idx_signature], size_signature);
walterluu 3:85fc843a9d7d 590 // pc.printf("Print ID_of_master\r\n");
walterluu 3:85fc843a9d7d 591 // for(int i = 0; i < sizeof(ID_of_master); i++){
walterluu 3:85fc843a9d7d 592 // pc.printf("%d \r\n", ID_of_master[i]);
walterluu 3:85fc843a9d7d 593 // }
walterluu 3:85fc843a9d7d 594 //
walterluu 3:85fc843a9d7d 595 //// memcpy(curr_dum_from_master, &BufferRx[rx_idx_dum], size_of_dum);
walterluu 3:85fc843a9d7d 596 // pc.printf("Print Dum From Master\r\n");
walterluu 3:85fc843a9d7d 597 // for(int i = 0; i < sizeof(curr_dum_from_master); i++){
walterluu 3:85fc843a9d7d 598 // pc.printf("%d \r\n", curr_dum_from_master[i]);
walterluu 3:85fc843a9d7d 599 // }
walterluu 3:85fc843a9d7d 600 //
walterluu 3:85fc843a9d7d 601 // // print loop counter
walterluu 3:85fc843a9d7d 602 // pc.printf("Loop Counter Slave: %d \r\n", loopCnt);
walterluu 3:85fc843a9d7d 603 // loopCnt = loopCnt + 1;
walterluu 3:85fc843a9d7d 604 // #endif
walterluu 3:85fc843a9d7d 605
walterluu 3:85fc843a9d7d 606 // add delay to slow down
walterluu 3:85fc843a9d7d 607 // wait(1);
walterluu 3:85fc843a9d7d 608
walterluu 3:85fc843a9d7d 609
walterluu 3:85fc843a9d7d 610 // } //end of get_data_flag
walterluu 3:85fc843a9d7d 611
walterluu 3:85fc843a9d7d 612 } // end of while(1) loop
walterluu 3:85fc843a9d7d 613
walterluu 3:85fc843a9d7d 614 } // end of main()
walterluu 0:664d9df11a00 615