Rev 2065 |
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
= 0;
// int16_t EC_PRTY[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;
}
void EC_periodicTaskAndPRTY
(int16_t* PRTY
) {
if (externalControlActive
) {
externalControlActive
--;
PRTY
[CONTROL_PITCH
] += externalControl.
pitch * (int16_t) staticParams.
stickP;
PRTY
[CONTROL_ROLL
] += externalControl.
roll * (int16_t) staticParams.
stickP;
PRTY
[CONTROL_THROTTLE
] += externalControl.
throttle;
PRTY
[CONTROL_YAW
] += externalControl.
yaw; // No stickP or similar??????
}
}
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;
}
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
;
}