aboutsummaryrefslogtreecommitdiff
path: root/source/HoverBitController.cpp
diff options
context:
space:
mode:
authorJakob Stendahl <jakob.stendahl@outlook.com>2021-02-10 11:04:13 +0100
committerJakob Stendahl <jakob.stendahl@outlook.com>2021-02-24 11:31:52 +0100
commit8cc460085e75a2cda1bb03cc51786c776da6ebcd (patch)
tree4b92e382ee0325e9d74e0f6fd437194812f13ed6 /source/HoverBitController.cpp
parent318d850719a86d58012689143c01dd0edb6263b5 (diff)
downloadhoverbit-ble-8cc460085e75a2cda1bb03cc51786c776da6ebcd.tar.gz
hoverbit-ble-8cc460085e75a2cda1bb03cc51786c776da6ebcd.zip
:boom: Refactor HoverBitController to only have API relevant for HoverBit
Diffstat (limited to 'source/HoverBitController.cpp')
-rw-r--r--source/HoverBitController.cpp33
1 files changed, 13 insertions, 20 deletions
diff --git a/source/HoverBitController.cpp b/source/HoverBitController.cpp
index 16c6bf1..9860b43 100644
--- a/source/HoverBitController.cpp
+++ b/source/HoverBitController.cpp
@@ -44,8 +44,7 @@ void HoverBitController::init(MicroBit* _uBit) {
roll = 0;
yaw = 0;
throttle = 0;
- failSafeC = 0;
- receiveTime = (*uBit).systemTime();
+ lastReceiveTime = (*uBit).systemTime();
/* I am not completly sure what this does, but it seems to me like this is
putting the air:bit board in some kind of "bind-mode", on the spec-sheet
@@ -62,14 +61,15 @@ void HoverBitController::init(MicroBit* _uBit) {
* This is not implemented yet.
*/
bool HoverBitController::failSafe(void) {
- unsigned long deltaReceiveTime = (*uBit.systemTime()) - receiveTime;
+ unsigned long deltaReceiveTime = (*uBit).systemTime() - lastReceiveTime;
if (deltaReceiveTime > FSAFE_TLIM_THROTTLE) {
Throttle(0);
- Roll(0);
- Servo1(0);
+ Rudder(0);
+ AirBit(0, arm, 0, throttle, roll, roll + 45, servo_1);
}
if (deltaReceiveTime > FSAFE_TLIM_ARM) {
Arm(0);
+ AirBit(0, arm, 0, throttle, roll, roll + 45, servo_1);
}
return (deltaReceiveTime > FSAFE_TLIM_THROTTLE) || (deltaReceiveTime > FSAFE_TLIM_ARM);
}
@@ -77,7 +77,7 @@ bool HoverBitController::failSafe(void) {
/**
* This returns the current voltage of the battery.
*/
-unsigned int HoverBitController::getBatteryVoltage() {
+unsigned int HoverBitController::GetBatteryVoltage() {
float batteryFactor = 4.42;
int batteryMilliVolt = 3700;
return ((float)((&(*uBit).io.P0)->getAnalogValue()) * batteryFactor * 0.05) + ((float)batteryMilliVolt * 0.95);
@@ -164,22 +164,15 @@ void HoverBitController::Throttle(int _throttle) {
else { throttle = _throttle; }
lastReceiveTime = (*uBit).systemTime();
}
-int HoverBitController::Servo1() {
- return servo_1;
-}
-void HoverBitController::Servo1(int _servo1) {
- if (_servo1 > 180) { servo_1 = 180; }
- else if (_servo1 < 0) { servo_1 = 0; }
- else { servo_1 = _servo1; }
- lastReceiveTime = (*uBit).systemTime();
-}
-int HoverBitController::Roll() {
+int HoverBitController::Rudder() {
+ // The AirBit uses the roll parameter to control the hoverbit's rudder.
return roll;
}
-void HoverBitController::Roll(int _roll) {
- if (_roll > 90) { roll = 90; }
- else if (_roll < -90) { roll = -90; }
- else { roll = _roll; }
+void HoverBitController::Rudder(int _rudder) {
+ // The AirBit uses the roll parameter to control the hoverbit's rudder.
+ if (_rudder > 90) { roll = 90; }
+ else if (_rudder < -90) { roll = -90; }
+ else { roll = _rudder; }
lastReceiveTime = (*uBit).systemTime();
}
bool HoverBitController::Arm() {