forked from Archive/PX4-Autopilot
geofence: better usefeedback if loaded
This commit is contained in:
parent
6962c5eedf
commit
2148464a70
|
@ -48,6 +48,7 @@
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <mavlink/mavlink_log.h>
|
||||||
|
|
||||||
|
|
||||||
/* Oddly, ERROR is not defined for C++ */
|
/* Oddly, ERROR is not defined for C++ */
|
||||||
|
@ -66,7 +67,8 @@ Geofence::Geofence() :
|
||||||
_param_altitude_mode(this, "ALTMODE"),
|
_param_altitude_mode(this, "ALTMODE"),
|
||||||
_param_source(this, "SOURCE"),
|
_param_source(this, "SOURCE"),
|
||||||
_param_counter_threshold(this, "COUNT"),
|
_param_counter_threshold(this, "COUNT"),
|
||||||
_outside_counter(0)
|
_outside_counter(0),
|
||||||
|
_mavlinkFd(-1)
|
||||||
{
|
{
|
||||||
/* Load initial params */
|
/* Load initial params */
|
||||||
updateParams();
|
updateParams();
|
||||||
|
@ -330,8 +332,10 @@ Geofence::loadFromFile(const char *filename)
|
||||||
{
|
{
|
||||||
_verticesCount = pointCounter;
|
_verticesCount = pointCounter;
|
||||||
warnx("Geofence: imported successfully");
|
warnx("Geofence: imported successfully");
|
||||||
|
mavlink_log_info(_mavlinkFd, "Geofence imported");
|
||||||
} else {
|
} else {
|
||||||
warnx("Geofence: import error");
|
warnx("Geofence: import error");
|
||||||
|
mavlink_log_critical(_mavlinkFd, "#audio: Geofence import error");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
|
|
|
@ -98,6 +98,8 @@ public:
|
||||||
|
|
||||||
int getSource() { return _param_source.get(); }
|
int getSource() { return _param_source.get(); }
|
||||||
|
|
||||||
|
void setMavlinkFd(int value) { _mavlinkFd = value; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
orb_advert_t _fence_pub; /**< publish fence topic */
|
orb_advert_t _fence_pub; /**< publish fence topic */
|
||||||
|
|
||||||
|
@ -114,6 +116,8 @@ private:
|
||||||
|
|
||||||
uint8_t _outside_counter;
|
uint8_t _outside_counter;
|
||||||
|
|
||||||
|
int _mavlinkFd;
|
||||||
|
|
||||||
bool inside(double lat, double lon, float altitude);
|
bool inside(double lat, double lon, float altitude);
|
||||||
bool inside(const struct vehicle_global_position_s &global_position);
|
bool inside(const struct vehicle_global_position_s &global_position);
|
||||||
bool inside(const struct vehicle_global_position_s &global_position, float baro_altitude_amsl);
|
bool inside(const struct vehicle_global_position_s &global_position, float baro_altitude_amsl);
|
||||||
|
|
|
@ -252,6 +252,7 @@ Navigator::task_main()
|
||||||
warnx("Initializing..");
|
warnx("Initializing..");
|
||||||
|
|
||||||
_mavlink_fd = open(MAVLINK_LOG_DEVICE, 0);
|
_mavlink_fd = open(MAVLINK_LOG_DEVICE, 0);
|
||||||
|
_geofence.setMavlinkFd(_mavlink_fd);
|
||||||
|
|
||||||
/* Try to load the geofence:
|
/* Try to load the geofence:
|
||||||
* if /fs/microsd/etc/geofence.txt load from this file
|
* if /fs/microsd/etc/geofence.txt load from this file
|
||||||
|
@ -263,6 +264,7 @@ Navigator::task_main()
|
||||||
_geofence.loadFromFile(GEOFENCE_FILENAME);
|
_geofence.loadFromFile(GEOFENCE_FILENAME);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
mavlink_log_critical(_mavlink_fd, "#audio: No geofence file");
|
||||||
if (_geofence.clearDm() > 0)
|
if (_geofence.clearDm() > 0)
|
||||||
warnx("Geofence cleared");
|
warnx("Geofence cleared");
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue