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: MPU9250_SPI SDFileSystem XBeeLib
event.cpp@29:ab809198c1ba, 2018-02-16 (annotated)
- 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?
| User | Revision | Line number | New 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 | //----------------------------------------------------------------- |

