RangingSensor and bug fixed
Implemented RangingSensor driver and choice between barometer and RangingSensor. Reduced I/O load.
This commit is contained in:
@@ -49,6 +49,7 @@ void FlightController::tick() {
|
||||
break;
|
||||
case DeviceStatus::IsBoarding:
|
||||
/* TODO: implement boarding */
|
||||
_boarding();
|
||||
break;
|
||||
case DeviceStatus::IsFlying:
|
||||
/* TODO: implement flying */
|
||||
@@ -169,6 +170,7 @@ void FlightController::stopAllRotors() {
|
||||
setRotor1Duty(0);
|
||||
setRotor2Duty(0);
|
||||
setRotor3Duty(0);
|
||||
_status = DeviceStatus::Idle;
|
||||
}
|
||||
|
||||
void FlightController::setHeightControllerParams(float p, float i, float d) {
|
||||
|
||||
@@ -167,8 +167,8 @@ void FlightDispatcher::_pidSettingsOpened() {
|
||||
|
||||
pkg.endObj();
|
||||
pkg.end();
|
||||
pkg.s = String(MessageType::PidSettings) + ";" + pkg.s + _message_delimeter;
|
||||
_bluetoothDispatcher->sendPackage(pkg.s.c_str(), strlen(pkg.s.c_str()));
|
||||
pkg.s = String(MessageType::PidSettings) + ";" + pkg.s;
|
||||
_bluetoothDispatcher->sendPackage(pkg.s.c_str());
|
||||
ESP_LOGI(_tag, "PID settings sended %s", pkg.s.c_str());
|
||||
}
|
||||
|
||||
@@ -186,6 +186,6 @@ void FlightDispatcher::_sendTelemetry() {
|
||||
package["zIn"] = state.mpuState.zInertial;
|
||||
package.endObj();
|
||||
package.end();
|
||||
package.s = String(MessageType::UpdatePackage) + ";" + package.s + _message_delimeter;
|
||||
_bluetoothDispatcher->sendPackage(package.s.c_str(), strlen((package.s.c_str())));
|
||||
package.s = String(MessageType::UpdatePackage) + ";" + package.s;
|
||||
_bluetoothDispatcher->sendPackage(package.s.c_str());
|
||||
}
|
||||
|
||||
@@ -7,32 +7,38 @@
|
||||
#include <map>
|
||||
|
||||
// Message type annotation for mobile app
|
||||
enum MessageType { UpdatePackage = 0, PidSettings };
|
||||
enum MessageType {
|
||||
UpdatePackage = 0, PidSettings
|
||||
};
|
||||
|
||||
class FlightDispatcher {
|
||||
/* Deserialize state and update it in FlightController. */
|
||||
public:
|
||||
public:
|
||||
FlightDispatcher(BluetoothDispatcher *bluetoothDispatcher,
|
||||
FlightController *flightController, volatile bool loop_on_fail = true);
|
||||
|
||||
~FlightDispatcher();
|
||||
|
||||
void tick();
|
||||
private:
|
||||
|
||||
private:
|
||||
/* Telemetry flow */
|
||||
void _sendTelemetry();
|
||||
|
||||
/* Events handlers */
|
||||
void _onNewDeviceConnected(BTAddress device);
|
||||
|
||||
void _onNewMessageReceived(char *package);
|
||||
|
||||
/* Requests handlers */
|
||||
void _changeStatus(const DeviceStatus &newStatus);
|
||||
|
||||
void _pidSettingsOpened();
|
||||
|
||||
/* Compile time settings */
|
||||
static constexpr const char *_tag = "FlightDispatcher";
|
||||
static constexpr const int _telemetryTimeIntervalMS = 200;
|
||||
static constexpr const uint8_t _jsonMaxDepth = 5;
|
||||
static constexpr const char *_message_delimeter = "\n";
|
||||
|
||||
uint32_t _telemetryTimer = millis();
|
||||
BluetoothDispatcher *_bluetoothDispatcher;
|
||||
|
||||
Reference in New Issue
Block a user