Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
#include "externalcontrol.h"
#include "configuration.h"
#include "controlMixer.h"
ExternalControl_t externalControl
;
uint8_t externalControlActive
;
int16_t EC_EATR
[4];
// TODO: Who is going to call this
void EC_setNeutral
(void) {
// if necessary. From main.c.
externalControl.
config = 0;
externalControl.
pitch = 0;
externalControl.
roll = 0;
externalControl.
yaw = 0;
externalControl.
throttle = 0;
// From main.c. What does it do??
externalControl.
digital[0] = 0x55;
}
int16_t* EC_getEATR
(void) {
return EC_EATR
;
}
uint8_t EC_getArgument
(void) {
return externalControl.
config;
}
uint8_t EC_getCommand
(void) {
return externalControl.
free;
}
// not implemented.
int16_t EC_getVariable
(uint8_t varNum
) {
return 0;
}
void EC_update
() {
if (externalControlActive
) {
externalControlActive
--;
EC_EATR
[CONTROL_ELEVATOR
] = externalControl.
pitch * 4;
EC_EATR
[CONTROL_AILERONS
] = externalControl.
roll * 4;
EC_EATR
[CONTROL_THROTTLE
] = externalControl.
throttle;
EC_EATR
[CONTROL_RUDDER
] = externalControl.
yaw; // No stickP or similar??????
} else {
EC_EATR
[CONTROL_ELEVATOR
] = EC_EATR
[CONTROL_AILERONS
] = EC_EATR
[CONTROL_THROTTLE
] = EC_EATR
[CONTROL_RUDDER
] = 0;
}
}
uint8_t EC_getSignalQuality
(void) {
if (externalControlActive
> 40)
// Configured and heard from recently
return SIGNAL_GOOD
;
if (externalControlActive
)
// Configured and heard from
return SIGNAL_OK
;
if (!(externalControl.
config & 0x01 && dynamicParams.
ExternalControl > 128))
// External control is not even configured.
return NO_SIGNAL
;
// Configured but expired.
return SIGNAL_LOST
;
}