void SensorManager::triggerMeasures() { m_sensorPosition->measure(); m_sensorPressure->measure(); if ( m_sensorPosition->isNewDataAvailable() || m_sensorPressure->isNewDataAvailable() ) { m_position = roundData(processPosition(m_sensorPosition->getData()), 0.005); m_pressure = roundData(processPressure(m_sensorPressure->getData()), 0.1); if (m_direction == INCREASING) { if (m_position > m_maxPosition) { m_diffPosition = m_position - m_maxPosition; m_maxPosition += m_diffPosition; m_sensorData.position += m_diffPosition; } if (m_position == 0.5) { m_direction = DECREASING; } } else { if (m_position == 0.0) { m_maxPosition = 0.0; m_direction = INCREASING; } } m_sensorData.pressure = m_pressure; notify(); } }
int main() { pc.printf("Starting \r\n"); setup(); //initializes all hardware sensors t.start(); while(button){ timeLastPoll = t.read_ms(); altitude = ps.pressureToAltitudeMeters(ps.readPressureMillibars()); acc.readFIFO(); gyr.readFIFO(); // pc.printf("%d Att: %2.2f \tGyr: %2.2f %2.2f %2.2f \tAcc: %2.2f %2.2f %2.2f \tT: %d\r\n", // iter, // altitude, // gyr.g.x,gyr.g.y,gyr.g.z, // acc.a.x,acc.a.y,acc.a.z, // t.read_ms()-timeLastPoll); if (iter != 0){ calcMotionData(a); } else{ calcMotionData(1.0); } r_altitude = roundData(altitude); r_incline = roundData(incline); r_dist = roundData(tot_dist/50.0); r_speed = roundData(speed); // pc.printf("%d \t%d \t%d \t%d\r\n",r_altitude,r_incline,r_dist,r_speed); fprintf(fp, "%d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %d, %d, %d \r\n", (t.read_ms() - timeLastPoll), altitude, gyr.g.x,gyr.g.y,gyr.g.z, acc.a.x,acc.a.y,acc.a.z, incline,tot_dist,speed, r_incline, r_dist, r_speed); static unsigned long lastSendTime = millis(); if (lastSendTime + 250 < millis()) { BTModu.sendData(String("x")+packageData2String(r_altitude)+ packageData2String(r_incline)+ packageData2String(r_dist)+ packageData2String(r_speed) ); lastSendTime += 250; } saveLastData(); while( (t.read_ms() - timeLastPoll) < MBED_POLLING_PERIOD_MS){ gled = 0; } // pc.printf("LT: %d\r\n",t.read_ms()-timeLastPoll); gled = 1; iter++; } fclose(fp); pc.printf("File successfully written! \r\n"); printf("End of Program. \r\n"); }