[telemetry] fix some messages downlink in main_ap and cam

This commit is contained in:
Gautier Hattenberger
2013-10-15 23:53:16 +02:00
parent 7c8be3839c
commit 3614f53c02
6 changed files with 19 additions and 16 deletions
+2
View File
@@ -26,6 +26,8 @@
<message name="IMU_GYRO" period="1.1"/>
<message name="SURVEY" period="2.1"/>
<message name="GPS_SOL" period="2.0"/>
<message name="CAM" period="0.5"/>
<message name="CAM_POINT" period="1.0"/>
</mode>
<mode name="minimal">
<message name="ALIVE" period="5"/>
+2
View File
@@ -28,6 +28,8 @@
<message name="IMU_ACCEL" period=".8"/>
<message name="IMU_GYRO" period=".6"/>
<message name="IMU_MAG" period="1.3"/>
<message name="CAM" period="0.5"/>
<message name="CAM_POINT" period="1.0"/>
</mode>
<mode name="minimal">
<message name="ALIVE" period="5"/>
+2 -2
View File
@@ -66,7 +66,7 @@ static void send_rc_settings(void) {
uint8_t rc_settings_mode = 0;
#endif
static void send_mode(void) {
void autopilot_send_mode(void) {
DOWNLINK_SEND_PPRZ_MODE(DefaultChannel, DefaultDevice,
&pprz_mode, &v_ctl_mode, &lateral_mode, &horizontal_mode, &rc_settings_mode, &mcu1_status);
}
@@ -149,7 +149,7 @@ void autopilot_init(void) {
/* register some periodic message */
register_periodic_telemetry(DefaultPeriodic, "ALIVE", send_alive);
register_periodic_telemetry(DefaultPeriodic, "PPRZ_MODE", send_mode);
register_periodic_telemetry(DefaultPeriodic, "PPRZ_MODE", autopilot_send_mode);
register_periodic_telemetry(DefaultPeriodic, "DOWNLINK", send_downlink);
register_periodic_telemetry(DefaultPeriodic, "ATTITUDE", send_attitude);
register_periodic_telemetry(DefaultPeriodic, "ESTIMATOR", send_estimator);
@@ -110,6 +110,9 @@ extern bool_t gps_lost;
(_mode != new_mode ? _mode = new_mode, TRUE : FALSE); \
})
/** Send mode over telemetry
*/
extern void autopilot_send_mode(void);
/** Power switch control.
*/
+6 -13
View File
@@ -387,9 +387,7 @@ static inline void telecommand_task( void ) {
#endif
}
mode_changed |= mcu1_status_update();
// FIXME
//if ( mode_changed )
// PERIODIC_SEND_PPRZ_MODE(DefaultChannel, DefaultDevice);
if ( mode_changed ) autopilot_send_mode();
#if defined RADIO_CONTROL || defined RADIO_CONTROL_AUTO1
/** In AUTO1 mode, compute roll setpoint and pitch setpoint from
@@ -468,17 +466,14 @@ void navigation_task( void ) {
if (pprz_mode == PPRZ_MODE_AUTO2 || pprz_mode == PPRZ_MODE_HOME) {
last_pprz_mode = pprz_mode;
pprz_mode = PPRZ_MODE_GPS_OUT_OF_ORDER;
// FIXME
//PERIODIC_SEND_PPRZ_MODE(DefaultChannel, DefaultDevice);
autopilot_send_mode();
gps_lost = TRUE;
}
} else if (gps_lost) { /* GPS is ok */
/** If aircraft was in failsafe mode, come back in previous mode */
pprz_mode = last_pprz_mode;
gps_lost = FALSE;
// FIXME
//PERIODIC_SEND_PPRZ_MODE(DefaultChannel, DefaultDevice);
autopilot_send_mode();
}
}
#endif /* GPS && FAILSAFE_DELAY_WITHOUT_GPS */
@@ -495,11 +490,9 @@ void navigation_task( void ) {
CallTCAS();
#endif
//#ifndef PERIOD_NAVIGATION_0 // If not sent periodically (in default 0 mode)
// SEND_NAVIGATION(DefaultChannel, DefaultDevice);
//#endif
//SEND_CAM(DefaultChannel, DefaultDevice);
#ifndef PERIOD_NAVIGATION_Ap_0 // If not sent periodically (in default 0 mode)
SEND_NAVIGATION(DefaultChannel, DefaultDevice);
#endif
/* The nav task computes only nav_altitude. However, we are interested
by desired_altitude (= nav_alt+alt_shift) in any case.
+4 -1
View File
@@ -104,17 +104,20 @@ static void send_cam(void) {
SEND_CAM(DefaultChannel, DefaultDevice);
}
#ifdef SHOW_CAM_COORDINATES
static void send_cam_point(void) {
DOWNLINK_SEND_CAM_POINT(DefaultChannel, DefaultDevice,
&cam_point_distance_from_home, &cam_point_lat, &cam_point_lon);
}
#endif
void cam_init( void ) {
cam_mode = CAM_MODE0;
register_periodic_telemetry(DefaultPeriodic, "CAM", send_cam);
#ifdef SHOW_CAM_COORDINATES
register_periodic_telemetry(DefaultPeriodic, "CAM_POINT", send_cam_point);
#endif
}
void cam_periodic( void ) {