Los Putacos / Mbed OS WearableDevice_Nucleo_New

Dependencies:   MPU9250_SPI

Fork of WearableDevice_Nucleo by Los Putacos

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers event.cpp Source File

event.cpp

00001 /*
00002 * Los Putacos
00003 * Copyright (C) 2017, All rights reserved.
00004 * ________________________________________
00005 *
00006 * Created by: Gustavo Campana, Michael Schmidt, Miguel Lopez
00007 *       Date: 12-Oct-2017
00008 *    Version: V0.1
00009 */
00010 //-----------------------------------------------------------------
00011 
00012 //-----------------------------------------------------------------
00013 // Includes
00014 #include "event.h"
00015 
00016 //-----------------------------------------------------------------
00017 
00018 //-----------------------------------------------------------------
00019 void ReadBattery(void)
00020 {
00021     Battery_Status = VSense.read()/0.21 - 3;        // Read Voltage Level above Critial Value (> 3V)
00022     Power_Consumption = ISense.read() * 3.3;        // Read Current Level and calculate Power_Consumption
00023     PC.printf("Battery_Status = %.3fV - %.3fmW\n", Battery_Status + 3, Power_Consumption);      // Show Total Voltage Level
00024 
00025     if (Battery_Status > 1) {   // More than 1V Voltage Difference
00026         LED_Red1 = 0;           // Turn ON both Red LEDs
00027         LED_Red2 = 0;
00028     } else if ((Battery_Status > 0.25) && (Battery_Status < 1)) {       // Between 0.25V and 1V Voltage Difference
00029         LED_Red1 = 0;       // Turn ON one Red LEDs
00030         LED_Red2 = 1;
00031     } else {
00032         LED_Red1 = 1;       // Turn off both Red LEDs
00033         LED_Red2 = 1;
00034     }
00035 }
00036 //-----------------------------------------------------------------
00037 
00038 //-----------------------------------------------------------------
00039 void ReceiveCommand(void)
00040 {
00041     response = Socket_TCP.connect("192.168.43.96", 8080);       // Connect to TCP Server at 192.168.43.96/8080
00042 
00043     if (0 == response) {            // Server Available & Connection Successful
00044         if (Socket_TCP.recv(Data_Buffer, sizeof Data_Buffer) > 0) {         // TCP Socket Data Available
00045             if (strlen(Data_Buffer) == 9) {                                 // Check Package Length (correct: len = 9)
00046                 if ((Data_Buffer[0] == '#') && (Data_Buffer[6] == ',')) {       // Check for "#" and "," at specific Positions
00047                     if (strstr(Data_Buffer, DeviceNr) != NULL) {                // Check for valid DeviceNr in Package
00048                         Ticker_ReadBattery.detach();            // Stop "ReadBattery" Thread                    
00049                         Ticker_ReceiveCommand.detach();         // Stop "ReceiveCommand" Thread
00050                         
00051                         Time_Buffer[0] = Data_Buffer[7];        // Read 1st Time Byte from Buffer
00052                         Time_Buffer[1] = Data_Buffer[8];        // Read 2nd Time Byte from Buffer
00053                         Requested_Time = atoi(Time_Buffer);     // Requested Time by Command
00054                         
00055                         PC.printf("\nCommand Received - Requested Time: %d\n", Requested_Time);
00056                         Buzzer = 0.5;       // Enable Buzzer at 50% DutyCycle
00057                         wait(0.5);          // Pause for Buzzing
00058                         Buzzer = 0;         // Disable Buzzer
00059                         CheckCommandDone_Flag = 1;              // Set Flag for Measurement Start
00060                     }
00061                 }
00062             }
00063         }
00064     }
00065 }
00066 //-----------------------------------------------------------------
00067 
00068 //-----------------------------------------------------------------
00069 void ReadIMU(void)
00070 {
00071     Time_Data = TimeStamp.read_ms();        // Read TimeStamp Data
00072 
00073     if (Time_Data <= Requested_Time * 1000) {       // Check Time Elapsed
00074         imu.read_acc();         // Read Accelerometer Data
00075 
00076         Data_Storage_MIC[writePointer_MIC++] = Micro_1.read_u16();      // Store Microphone Data
00077         Data_Storage[writePointer++] = imu.accelerometer_data[2];       // Store Z-Axis Accelerometer Data
00078         Data_Storage[writePointer++] = imu.accelerometer_data[1];       // Store Y-Axis Accelerometer Data
00079         Data_Storage[writePointer++] = imu.accelerometer_data[0];       // Store X-Axis Accelerometer Data
00080         Data_Storage[writePointer++] = Time_Data;                       // Store Time Data
00081     } else {
00082         Ticker_IMU.detach();        // Stop "ReadIMU" Thread
00083         TimeStamp.stop();           // Stop TimeStamp
00084         TimeStamp.reset();          // Reset TimeStamp
00085 
00086         TimeStamp.start();          // Start TimeStamp
00087         ReadIMUDone_Flag = 1;       // Set Flag for Sending Start
00088     }
00089 }
00090 //-----------------------------------------------------------------
00091 
00092 //-----------------------------------------------------------------