Subversion Repositories FlightCtrl

Rev

Rev 1612 | Rev 1821 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1612 Rev 1617
1
#include "externalcontrol.h"
1
#include "externalcontrol.h"
2
#include "configuration.h"
2
#include "configuration.h"
3
#include "controlMixer.h"
3
#include "controlMixer.h"
4
 
4
 
5
ExternalControl_t externalControl;
5
ExternalControl_t externalControl;
6
uint8_t externalControlActive;
6
uint8_t externalControlActive;
7
 
7
 
8
int16_t EC_PRTY[4];
8
int16_t EC_PRTY[4];
9
 
9
 
10
// TODO: Who is going to call this
10
// TODO: Who is going to call this
11
void EC_setNeutral(void) {
11
void EC_setNeutral(void) {
12
  // if necessary. From main.c.
12
  // if necessary. From main.c.
13
  externalControl.config = 0;
13
  externalControl.config = 0;
14
  externalControl.pitch = 0;
14
  externalControl.pitch = 0;
15
  externalControl.roll = 0;
15
  externalControl.roll = 0;
16
  externalControl.yaw = 0;
16
  externalControl.yaw = 0;
17
  externalControl.throttle = 0;
17
  externalControl.throttle = 0;
18
 
18
 
19
  // From main.c. What does it do??
19
  // From main.c. What does it do??
20
  externalControl.digital[0] = 0x55;
20
  externalControl.digital[0] = 0x55;
21
}
21
}
22
 
22
 
23
int16_t* EC_getPRTY(void) {
23
int16_t* EC_getPRTY(void) {
24
  return EC_PRTY;
24
  return EC_PRTY;
25
}
25
}
26
 
26
 
27
// not implemented.
27
// not implemented.
28
uint8_t EC_getArgument(void) {
28
uint8_t EC_getArgument(void) {
29
  return 0;
29
  return 0;
30
}
30
}
31
 
31
 
32
// not implemented.
32
// not implemented.
33
uint8_t EC_getCommand(void) {
33
uint8_t EC_getCommand(void) {
34
  return COMMAND_NONE;
34
  return COMMAND_NONE;
35
}
35
}
36
 
36
 
37
// not implemented.
37
// not implemented.
38
int16_t EC_getVariable(uint8_t varNum) {
38
int16_t EC_getVariable(uint8_t varNum) {
39
  return 0;
39
  return 0;
40
}
40
}
41
 
41
 
42
void EC_update() {
42
void EC_update() {
43
  if (externalControlActive) {
43
  if (externalControlActive) {
44
    externalControlActive--;
44
    externalControlActive--;
45
    EC_PRTY[CONTROL_PITCH] = (int16_t) externalControl.pitch * (int16_t) staticParams.StickP;
45
    EC_PRTY[CONTROL_PITCH] = (int16_t) externalControl.pitch * (int16_t) staticParams.StickP;
46
    EC_PRTY[CONTROL_ROLL] = externalControl.roll * (int16_t) staticParams.StickP;
46
    EC_PRTY[CONTROL_ROLL] = externalControl.roll * (int16_t) staticParams.StickP;
47
    EC_PRTY[CONTROL_THROTTLE] = externalControl.throttle;
47
    EC_PRTY[CONTROL_THROTTLE] = externalControl.throttle;
48
    EC_PRTY[CONTROL_YAW] = externalControl.yaw; // No stickP or similar??????
48
    EC_PRTY[CONTROL_YAW] = externalControl.yaw; // No stickP or similar??????
49
  } else {
49
  } else {
50
    EC_PRTY[CONTROL_PITCH] = EC_PRTY[CONTROL_ROLL] = EC_PRTY[CONTROL_THROTTLE] = EC_PRTY[CONTROL_YAW] = 0;
50
    EC_PRTY[CONTROL_PITCH] = EC_PRTY[CONTROL_ROLL] = EC_PRTY[CONTROL_THROTTLE] = EC_PRTY[CONTROL_YAW] = 0;
51
  }
51
  }
52
}
52
}
53
 
53
 
54
uint8_t EC_getSignalQuality(void) {
54
uint8_t EC_getSignalQuality(void) {
55
  if (!(externalControl.config & 0x01 && dynamicParams.ExternalControl > 128))
-
 
56
    // External control is not even configured.
-
 
57
    return NO_SIGNAL;
-
 
58
 
-
 
59
  if (externalControlActive > 100)
55
  if (externalControlActive > 100)
60
    // Configured and heard from recently
56
    // Configured and heard from recently
61
    return SIGNAL_GOOD;
57
    return SIGNAL_GOOD;
62
 
58
 
63
  if (externalControlActive)
59
  if (externalControlActive)
64
    // Configured and heard from
60
    // Configured and heard from
65
    return SIGNAL_OK;
61
    return SIGNAL_OK;
-
 
62
 
-
 
63
  if (!(externalControl.config & 0x01 && dynamicParams.ExternalControl > 128))
-
 
64
    // External control is not even configured.
-
 
65
    return NO_SIGNAL;
66
 
66
 
67
  // Configured but expired.
67
  // Configured but expired.
68
  return SIGNAL_LOST;
68
  return SIGNAL_LOST;
69
}
69
}
70
 
70