git status

This commit is contained in:
fpvaspassion
2015-08-18 23:17:07 +02:00
committed by Lorenz Meier
parent e6ffa16125
commit 60be6a577f
6 changed files with 33 additions and 79 deletions
+8 -4
View File
@@ -60,7 +60,9 @@ MissionBlock::MissionBlock(Navigator *navigator, const char *name) :
_mission_item({0}),
_waypoint_position_reached(false),
_waypoint_yaw_reached(false),
_time_first_inside_orbit(0)
_time_first_inside_orbit(0),
_actuators{},
_actuator_pub(nullptr)
{
}
@@ -72,9 +74,11 @@ bool
MissionBlock::is_mission_item_reached()
{
if (_mission_item.nav_cmd == NAV_CMD_DO_SET_SERVO) {
//up_pwm_servo_arm(true);
//up_pwm_servo_set(_mission_item.actuator_num-1, _mission_item.actuator_value);
warnx("Set servo cmd executed");
_actuators.control[_mission_item.actuator_num] = 1.0f / 2000 * -_mission_item.actuator_value;
_actuators.timestamp = hrt_absolute_time();
orb_publish(ORB_ID(actuator_controls_2), _actuator_pub, &_actuators);
warnx("Set servo cmd executed");
return true;
}
+5
View File
@@ -46,6 +46,7 @@
#include <uORB/topics/mission.h>
#include <uORB/topics/vehicle_global_position.h>
#include <uORB/topics/position_setpoint_triplet.h>
#include <uORB/topics/actuator_controls.h>
#include "navigator_mode.h"
@@ -97,6 +98,10 @@ protected:
bool _waypoint_position_reached;
bool _waypoint_yaw_reached;
hrt_abstime _time_first_inside_orbit;
actuator_controls_s _actuators;
orb_advert_t _actuator_pub;
};
#endif
@@ -303,9 +303,25 @@ MissionFeasibilityChecker::check_dist_1wp(dm_item_t dm_current, size_t nMissionI
for (unsigned i = 0; i < nMissionItems; i++) {
if (dm_read(dm_current, i,
&mission_item, sizeof(mission_item_s)) == sizeof(mission_item_s)) {
/* Check non navigation item */
if (mission_item.nav_cmd == NAV_CMD_DO_SET_SERVO){
//check actuator number
if (mission_item.actuator_num<1 || mission_item.actuator_num>6) {
mavlink_log_critical(_mavlink_fd, "Actuator number %d is out of bounds 1..6", (int)mission_item.actuator_num);
warning_issued = true;
return false;
}
//check actuator value
if (mission_item.actuator_value<900 || mission_item.actuator_value>2000) {
mavlink_log_critical(_mavlink_fd, "Actuator number %d is out of bounds 900..2000", (int)mission_item.actuator_value);
warning_issued = true;
return false;
}
}
/* check only items with valid lat/lon */
if ( mission_item.nav_cmd == NAV_CMD_WAYPOINT ||
else if ( mission_item.nav_cmd == NAV_CMD_WAYPOINT ||
mission_item.nav_cmd == NAV_CMD_LOITER_TIME_LIMIT ||
mission_item.nav_cmd == NAV_CMD_LOITER_TURN_COUNT ||
mission_item.nav_cmd == NAV_CMD_LOITER_UNLIMITED ||