Los Putacos / Mbed OS WearableDevice_Nucleo

Dependencies:   MPU9250_SPI SDFileSystem XBeeLib

Committer:
Muglug
Date:
Fri Feb 16 18:30:19 2018 +0000
Revision:
29:ab809198c1ba
Parent:
28:c7e977a19564
Final Version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gusteibolt 6:939df52d75c9 1 /*
gusteibolt 6:939df52d75c9 2 * Los Putacos
gusteibolt 6:939df52d75c9 3 * Copyright (C) 2017, All rights reserved.
Muglug 23:aad5fd1b3ef9 4 * ________________________________________
gusteibolt 6:939df52d75c9 5 *
gusteibolt 6:939df52d75c9 6 * Created by: Gustavo Campana, Michael Schmidt, Miguel Lopez
gusteibolt 6:939df52d75c9 7 * Date: 12-Oct-2017
gusteibolt 6:939df52d75c9 8 * Version: V0.1
gusteibolt 10:577e1fc4453e 9 */
Muglug 26:4bc56ce08d15 10 //-----------------------------------------------------------------
gusteibolt 7:ebaaff27840b 11
Muglug 26:4bc56ce08d15 12 //-----------------------------------------------------------------
Muglug 26:4bc56ce08d15 13 // Includes
Muglug 26:4bc56ce08d15 14 #include "event.h"
Muglug 29:ab809198c1ba 15
Muglug 29:ab809198c1ba 16 //-----------------------------------------------------------------
Muglug 29:ab809198c1ba 17
Muglug 29:ab809198c1ba 18 //-----------------------------------------------------------------
Muglug 29:ab809198c1ba 19 void ReadBattery(void)
Muglug 29:ab809198c1ba 20 {
Muglug 29:ab809198c1ba 21 Battery_Status = VSense.read()/0.21 - 3; // Read Voltage Level above Critial Value (> 3V)
Muglug 29:ab809198c1ba 22 Power_Consumption = ISense.read() * 3.3; // Read Current Level and calculate Power_Consumption
Muglug 29:ab809198c1ba 23 PC.printf("Battery_Status = %.3fV - %.3fmW\n", Battery_Status + 3, Power_Consumption); // Show Total Voltage Level
Muglug 29:ab809198c1ba 24
Muglug 29:ab809198c1ba 25 if (Battery_Status > 1) { // More than 1V Voltage Difference
Muglug 29:ab809198c1ba 26 LED_Red1 = 0; // Turn ON both Red LEDs
Muglug 29:ab809198c1ba 27 LED_Red2 = 0;
Muglug 29:ab809198c1ba 28 } else if ((Battery_Status > 0.25) && (Battery_Status < 1)) { // Between 0.25V and 1V Voltage Difference
Muglug 29:ab809198c1ba 29 LED_Red1 = 0; // Turn ON one Red LEDs
Muglug 29:ab809198c1ba 30 LED_Red2 = 1;
Muglug 29:ab809198c1ba 31 } else {
Muglug 29:ab809198c1ba 32 LED_Red1 = 1; // Turn off both Red LEDs
Muglug 29:ab809198c1ba 33 LED_Red2 = 1;
Muglug 29:ab809198c1ba 34 }
Muglug 29:ab809198c1ba 35 }
Muglug 26:4bc56ce08d15 36 //-----------------------------------------------------------------
gusteibolt 10:577e1fc4453e 37
Muglug 26:4bc56ce08d15 38 //-----------------------------------------------------------------
Muglug 28:c7e977a19564 39 void ReceiveCommand(void)
Muglug 23:aad5fd1b3ef9 40 {
Muglug 29:ab809198c1ba 41 response = Socket_TCP.connect("192.168.43.96", 8080); // Connect to TCP Server at 192.168.43.96/8080
Muglug 28:c7e977a19564 42
Muglug 29:ab809198c1ba 43 if (0 == response) { // Server Available & Connection Successful
Muglug 29:ab809198c1ba 44 if (Socket_TCP.recv(Data_Buffer, sizeof Data_Buffer) > 0) { // TCP Socket Data Available
Muglug 29:ab809198c1ba 45 if (strlen(Data_Buffer) == 9) { // Check Package Length (correct: len = 9)
Muglug 29:ab809198c1ba 46 if ((Data_Buffer[0] == '#') && (Data_Buffer[6] == ',')) { // Check for "#" and "," at specific Positions
Muglug 29:ab809198c1ba 47 if (strstr(Data_Buffer, DeviceNr) != NULL) { // Check for valid DeviceNr in Package
Muglug 29:ab809198c1ba 48 Ticker_ReadBattery.detach(); // Stop "ReadBattery" Thread
Muglug 29:ab809198c1ba 49 Ticker_ReceiveCommand.detach(); // Stop "ReceiveCommand" Thread
Muglug 29:ab809198c1ba 50
Muglug 29:ab809198c1ba 51 Time_Buffer[0] = Data_Buffer[7]; // Read 1st Time Byte from Buffer
Muglug 29:ab809198c1ba 52 Time_Buffer[1] = Data_Buffer[8]; // Read 2nd Time Byte from Buffer
Muglug 29:ab809198c1ba 53 Requested_Time = atoi(Time_Buffer); // Requested Time by Command
Muglug 29:ab809198c1ba 54
Muglug 29:ab809198c1ba 55 PC.printf("\nCommand Received - Requested Time: %d\n", Requested_Time);
Muglug 29:ab809198c1ba 56 Buzzer = 0.5; // Enable Buzzer at 50% DutyCycle
Muglug 29:ab809198c1ba 57 wait(0.5); // Pause for Buzzing
Muglug 29:ab809198c1ba 58 Buzzer = 0; // Disable Buzzer
Muglug 29:ab809198c1ba 59 CheckCommandDone_Flag = 1; // Set Flag for Measurement Start
Muglug 29:ab809198c1ba 60 }
Muglug 28:c7e977a19564 61 }
Muglug 28:c7e977a19564 62 }
Muglug 28:c7e977a19564 63 }
Muglug 28:c7e977a19564 64 }
Muglug 23:aad5fd1b3ef9 65 }
Muglug 23:aad5fd1b3ef9 66 //-----------------------------------------------------------------
Muglug 23:aad5fd1b3ef9 67
Muglug 23:aad5fd1b3ef9 68 //-----------------------------------------------------------------
Muglug 26:4bc56ce08d15 69 void ReadIMU(void)
Muglug 26:4bc56ce08d15 70 {
Muglug 26:4bc56ce08d15 71 Time_Data = TimeStamp.read_ms(); // Read TimeStamp Data
Muglug 26:4bc56ce08d15 72
Muglug 26:4bc56ce08d15 73 if (Time_Data <= Requested_Time * 1000) { // Check Time Elapsed
Muglug 29:ab809198c1ba 74 imu.read_acc(); // Read Accelerometer Data
Muglug 26:4bc56ce08d15 75
Muglug 29:ab809198c1ba 76 Data_Storage_MIC[writePointer_MIC++] = Micro_1.read_u16(); // Store Microphone Data
Muglug 29:ab809198c1ba 77 Data_Storage[writePointer++] = imu.accelerometer_data[2]; // Store Z-Axis Accelerometer Data
Muglug 29:ab809198c1ba 78 Data_Storage[writePointer++] = imu.accelerometer_data[1]; // Store Y-Axis Accelerometer Data
Muglug 29:ab809198c1ba 79 Data_Storage[writePointer++] = imu.accelerometer_data[0]; // Store X-Axis Accelerometer Data
Muglug 29:ab809198c1ba 80 Data_Storage[writePointer++] = Time_Data; // Store Time Data
Muglug 26:4bc56ce08d15 81 } else {
Muglug 29:ab809198c1ba 82 Ticker_IMU.detach(); // Stop "ReadIMU" Thread
Muglug 26:4bc56ce08d15 83 TimeStamp.stop(); // Stop TimeStamp
Muglug 28:c7e977a19564 84 TimeStamp.reset(); // Reset TimeStamp
Muglug 26:4bc56ce08d15 85
Muglug 29:ab809198c1ba 86 TimeStamp.start(); // Start TimeStamp
Muglug 29:ab809198c1ba 87 ReadIMUDone_Flag = 1; // Set Flag for Sending Start
Muglug 26:4bc56ce08d15 88 }
Muglug 26:4bc56ce08d15 89 }
Muglug 26:4bc56ce08d15 90 //-----------------------------------------------------------------
Muglug 26:4bc56ce08d15 91
Muglug 23:aad5fd1b3ef9 92 //-----------------------------------------------------------------