Browse Source

vmount: properly unadvertise uorb topics when stopping or re-configuring vmount. Othwerise subsequent advertise calls may fail (only ever witnessed for _mount_orientation_pub)

sbg
Nicolas de Palezieux 8 years ago committed by Beat Küng
parent
commit
b8d389ca4e
  1. 4
      src/drivers/vmount/output.cpp
  2. 7
      src/drivers/vmount/output_mavlink.cpp
  3. 2
      src/drivers/vmount/output_mavlink.h

4
src/drivers/vmount/output.cpp

@ -68,6 +68,10 @@ OutputBase::~OutputBase() @@ -68,6 +68,10 @@ OutputBase::~OutputBase()
if (_vehicle_global_position_sub >= 0) {
orb_unsubscribe(_vehicle_global_position_sub);
}
if (_mount_orientation_pub) {
orb_unadvertise(_mount_orientation_pub);
}
}
int OutputBase::initialize()

7
src/drivers/vmount/output_mavlink.cpp

@ -52,6 +52,13 @@ OutputMavlink::OutputMavlink(const OutputConfig &output_config) @@ -52,6 +52,13 @@ OutputMavlink::OutputMavlink(const OutputConfig &output_config)
{
}
OutputMavlink::~OutputMavlink()
{
if (_vehicle_command_pub) {
orb_unadvertise(_vehicle_command_pub);
}
}
int OutputMavlink::update(const ControlData *control_data)
{
vehicle_command_s vehicle_command = {

2
src/drivers/vmount/output_mavlink.h

@ -56,7 +56,7 @@ class OutputMavlink : public OutputBase @@ -56,7 +56,7 @@ class OutputMavlink : public OutputBase
{
public:
OutputMavlink(const OutputConfig &output_config);
virtual ~OutputMavlink() { }
~OutputMavlink();
virtual int update(const ControlData *control_data);

Loading…
Cancel
Save