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
Diff: event.cpp
- Revision:
- 29:ab809198c1ba
- Parent:
- 28:c7e977a19564
--- a/event.cpp Tue Dec 19 10:15:19 2017 +0000
+++ b/event.cpp Fri Feb 16 18:30:19 2018 +0000
@@ -12,25 +12,52 @@
//-----------------------------------------------------------------
// Includes
#include "event.h"
+
+//-----------------------------------------------------------------
+
+//-----------------------------------------------------------------
+void ReadBattery(void)
+{
+ Battery_Status = VSense.read()/0.21 - 3; // Read Voltage Level above Critial Value (> 3V)
+ Power_Consumption = ISense.read() * 3.3; // Read Current Level and calculate Power_Consumption
+ PC.printf("Battery_Status = %.3fV - %.3fmW\n", Battery_Status + 3, Power_Consumption); // Show Total Voltage Level
+
+ if (Battery_Status > 1) { // More than 1V Voltage Difference
+ LED_Red1 = 0; // Turn ON both Red LEDs
+ LED_Red2 = 0;
+ } else if ((Battery_Status > 0.25) && (Battery_Status < 1)) { // Between 0.25V and 1V Voltage Difference
+ LED_Red1 = 0; // Turn ON one Red LEDs
+ LED_Red2 = 1;
+ } else {
+ LED_Red1 = 1; // Turn off both Red LEDs
+ LED_Red2 = 1;
+ }
+}
//-----------------------------------------------------------------
//-----------------------------------------------------------------
void ReceiveCommand(void)
{
- if (Socket_TCP.recv(Data_Buffer, sizeof Data_Buffer) > 0) {
- PC.printf("Socket Data Received! - %s\n", Data_Buffer);
+ response = Socket_TCP.connect("192.168.43.96", 8080); // Connect to TCP Server at 192.168.43.96/8080
- if (strlen(Data_Buffer) == 9) { // Check Package Length (correct: len = 9)
- if ((Data_Buffer[0] == '#') && (Data_Buffer[6] == ',')) { // Check for "#" and "," at specific Positions
- if (strstr(Data_Buffer, DeviceNr) != NULL) { // Check for valid DeviceNr in Package
- Time_Buffer[0] = Data_Buffer[7];
- Time_Buffer[1] = Data_Buffer[8];
- Requested_Time = atoi(Time_Buffer); // Requested Time by received Package
-
- CheckCommandDone_Flag = 1;
- PC.printf("Requested Time: %d\n", Requested_Time);
- memset(Data_Buffer, 0, sizeof(Data_Buffer)); // Clear Data_Buffer
- Ticker_ReceiveCommand.detach();
+ if (0 == response) { // Server Available & Connection Successful
+ if (Socket_TCP.recv(Data_Buffer, sizeof Data_Buffer) > 0) { // TCP Socket Data Available
+ if (strlen(Data_Buffer) == 9) { // Check Package Length (correct: len = 9)
+ if ((Data_Buffer[0] == '#') && (Data_Buffer[6] == ',')) { // Check for "#" and "," at specific Positions
+ if (strstr(Data_Buffer, DeviceNr) != NULL) { // Check for valid DeviceNr in Package
+ Ticker_ReadBattery.detach(); // Stop "ReadBattery" Thread
+ Ticker_ReceiveCommand.detach(); // Stop "ReceiveCommand" Thread
+
+ Time_Buffer[0] = Data_Buffer[7]; // Read 1st Time Byte from Buffer
+ Time_Buffer[1] = Data_Buffer[8]; // Read 2nd Time Byte from Buffer
+ Requested_Time = atoi(Time_Buffer); // Requested Time by Command
+
+ PC.printf("\nCommand Received - Requested Time: %d\n", Requested_Time);
+ Buzzer = 0.5; // Enable Buzzer at 50% DutyCycle
+ wait(0.5); // Pause for Buzzing
+ Buzzer = 0; // Disable Buzzer
+ CheckCommandDone_Flag = 1; // Set Flag for Measurement Start
+ }
}
}
}
@@ -44,21 +71,20 @@
Time_Data = TimeStamp.read_ms(); // Read TimeStamp Data
if (Time_Data <= Requested_Time * 1000) { // Check Time Elapsed
- imu.read_acc();
+ imu.read_acc(); // Read Accelerometer Data
- Data_Storage_MIC[writePointer_MIC++] = micro.read_u16(); // Store Microphone Data
- Data_Storage[writePointer++] = imu.accelerometer_data[2]; // Store Z-Axis Accelerometer Data
- Data_Storage[writePointer++] = imu.accelerometer_data[1]; // Store Y-Axis Accelerometer Data
- Data_Storage[writePointer++] = imu.accelerometer_data[0]; // Store X-Axis Accelerometer Data
- Data_Storage[writePointer++] = Time_Data; // Store Time Data
+ Data_Storage_MIC[writePointer_MIC++] = Micro_1.read_u16(); // Store Microphone Data
+ Data_Storage[writePointer++] = imu.accelerometer_data[2]; // Store Z-Axis Accelerometer Data
+ Data_Storage[writePointer++] = imu.accelerometer_data[1]; // Store Y-Axis Accelerometer Data
+ Data_Storage[writePointer++] = imu.accelerometer_data[0]; // Store X-Axis Accelerometer Data
+ Data_Storage[writePointer++] = Time_Data; // Store Time Data
} else {
- Ticker_IMU.detach(); // Detach Timer to Stop "ReadIMU"
+ Ticker_IMU.detach(); // Stop "ReadIMU" Thread
TimeStamp.stop(); // Stop TimeStamp
TimeStamp.reset(); // Reset TimeStamp
- TimeStamp.start();
- ReadIMUDone_Flag = 1;
- PC.printf("Measurement Done!\n");
+ TimeStamp.start(); // Start TimeStamp
+ ReadIMUDone_Flag = 1; // Set Flag for Sending Start
}
}
//-----------------------------------------------------------------

