1
0
Fork 0

Fix segfauls in swift service

This commit is contained in:
Lars Toenning 2020-05-06 16:28:51 +02:00 committed by James Turner
parent bf72e1d729
commit da666ae83c
2 changed files with 106 additions and 106 deletions

View file

@ -30,38 +30,38 @@ namespace FGSwiftBus {
CService::CService() CService::CService()
{ {
// Initialize node pointers // Initialize node pointers
textMessageNode = fgGetNode("/sim/messages/copilot"); m_textMessageNode = fgGetNode("/sim/messages/copilot", true);
aircraftModelPathNode = fgGetNode("/sim/aircraft-dir"); m_aircraftModelPathNode = fgGetNode("/sim/aircraft-dir", true);
aircraftDescriptionNode = fgGetNode("/sim/description"); m_aircraftDescriptionNode = fgGetNode("/sim/description", true);
isPausedNode = fgGetNode("/sim/freeze/master"); m_isPausedNode = fgGetNode("/sim/freeze/master", true);
latitudeNode = fgGetNode("/position/latitude-deg"); m_latitudeNode = fgGetNode("/position/latitude-deg", true);
longitudeNode = fgGetNode("/position/longitude-deg"); m_longitudeNode = fgGetNode("/position/longitude-deg", true);
altitudeMSLNode = fgGetNode("/position/altitude-ft"); m_altitudeMSLNode = fgGetNode("/position/altitude-ft", true);
heightAGLNode = fgGetNode("/position/altitude-agl-ft"); m_heightAGLNode = fgGetNode("/position/altitude-agl-ft", true);
groundSpeedNode = fgGetNode("/velocities/groundspeed-kt"); m_groundSpeedNode = fgGetNode("/velocities/groundspeed-kt", true);
pitchNode = fgGetNode("/orientation/pitch-deg"); m_pitchNode = fgGetNode("/orientation/pitch-deg", true);
rollNode = fgGetNode("/orientation/roll-deg"); m_rollNode = fgGetNode("/orientation/roll-deg", true);
trueHeadingNode = fgGetNode("/orientation/heading-deg"); m_trueHeadingNode = fgGetNode("/orientation/heading-deg", true);
wheelsOnGroundNode = fgGetNode("/gear/gear/wow"); m_wheelsOnGroundNode = fgGetNode("/gear/gear/wow", true);
com1ActiveNode = fgGetNode("/instrumentation/comm/frequencies/selected-mhz"); m_com1ActiveNode = fgGetNode("/instrumentation/comm/frequencies/selected-mhz", true);
com1StandbyNode = fgGetNode("/instrumentation/comm/frequencies/standby-mhz"); m_com1StandbyNode = fgGetNode("/instrumentation/comm/frequencies/standby-mhz", true);
com2ActiveNode = fgGetNode("/instrumentation/comm[1]/frequencies/selected-mhz"); m_com2ActiveNode = fgGetNode("/instrumentation/comm[1]/frequencies/selected-mhz", true);
com2StandbyNode = fgGetNode("/instrumentation/comm[1]/frequencies/standby-mhz"); m_com2StandbyNode = fgGetNode("/instrumentation/comm[1]/frequencies/standby-mhz", true);
transponderCodeNode = fgGetNode("/instrumentation/transponder/id-code"); m_transponderCodeNode = fgGetNode("/instrumentation/transponder/id-code", true);
transponderModeNode = fgGetNode("/instrumentation/transponder/inputs/knob-mode"); m_transponderModeNode = fgGetNode("/instrumentation/transponder/inputs/knob-mode", true);
transponderIdentNode = fgGetNode("/instrumentation/transponder/ident"); m_transponderIdentNode = fgGetNode("/instrumentation/transponder/ident", true);
beaconLightsNode = fgGetNode("/controls/lighting/beacon"); m_beaconLightsNode = fgGetNode("/controls/lighting/beacon", true);
landingLightsNode = fgGetNode("/controls/lighting/landing-lights"); m_landingLightsNode = fgGetNode("/controls/lighting/landing-lights", true);
navLightsNode = fgGetNode("/controls/lighting/nav-lights"); m_navLightsNode = fgGetNode("/controls/lighting/nav-lights", true);
strobeLightsNode = fgGetNode("/controls/lighting/strobe"); m_strobeLightsNode = fgGetNode("/controls/lighting/strobe", true);
taxiLightsNode = fgGetNode("/controls/lighting/taxi-light"); m_taxiLightsNode = fgGetNode("/controls/lighting/taxi-light", true);
altimeterServiceableNode = fgGetNode("/instrumentation/altimeter/serviceable"); m_altimeterServiceableNode = fgGetNode("/instrumentation/altimeter/serviceable", true);
pressAltitudeFtNode = fgGetNode("/instrumentation/altimeter/pressure-alt-ft"); m_pressAltitudeFtNode = fgGetNode("/instrumentation/altimeter/pressure-alt-ft", true);
flapsDeployRatioNode = fgGetNode("/surface-positions/flap-pos-norm"); m_flapsDeployRatioNode = fgGetNode("/surface-positions/flap-pos-norm", true);
gearDeployRatioNode = fgGetNode("/gear/gear/position-norm"); m_gearDeployRatioNode = fgGetNode("/gear/gear/position-norm", true);
speedBrakeDeployRatioNode = fgGetNode("/surface-positions/speedbrake-pos-norm"); m_speedBrakeDeployRatioNode = fgGetNode("/surface-positions/speedbrake-pos-norm", true);
aircraftNameNode = fgGetNode("/sim/aircraft"); m_aircraftNameNode = fgGetNode("/sim/aircraft", true);
groundElevation = fgGetNode("/position/ground-elev-m"); m_groundElevationNode = fgGetNode("/position/ground-elev-m", true);
SG_LOG(SG_NETWORK, SG_INFO, "FGSwiftBus Service initialized"); SG_LOG(SG_NETWORK, SG_INFO, "FGSwiftBus Service initialized");
} }
@ -86,12 +86,12 @@ int CService::getVersionNumber()
void CService::addTextMessage(const std::string& text) void CService::addTextMessage(const std::string& text)
{ {
if (text.empty()) { return; } if (text.empty()) { return; }
textMessageNode->setStringValue(text); m_textMessageNode->setStringValue(text);
} }
std::string CService::getAircraftModelPath() const std::string CService::getAircraftModelPath() const
{ {
return aircraftModelPathNode->getStringValue(); return m_aircraftModelPathNode->getStringValue();
} }
std::string CService::getAircraftLivery() const std::string CService::getAircraftLivery() const
@ -106,167 +106,167 @@ std::string CService::getAircraftIcaoCode() const
std::string CService::getAircraftDescription() const std::string CService::getAircraftDescription() const
{ {
return aircraftDescriptionNode->getStringValue(); return m_aircraftDescriptionNode->getStringValue();
} }
bool CService::isPaused() const bool CService::isPaused() const
{ {
return isPausedNode->getBoolValue(); return m_isPausedNode->getBoolValue();
} }
double CService::getLatitude() const double CService::getLatitude() const
{ {
return latitudeNode->getDoubleValue(); return m_latitudeNode->getDoubleValue();
} }
double CService::getLongitude() const double CService::getLongitude() const
{ {
return longitudeNode->getDoubleValue(); return m_longitudeNode->getDoubleValue();
} }
double CService::getAltitudeMSL() const double CService::getAltitudeMSL() const
{ {
return altitudeMSLNode->getDoubleValue(); return m_altitudeMSLNode->getDoubleValue();
} }
double CService::getHeightAGL() const double CService::getHeightAGL() const
{ {
return heightAGLNode->getDoubleValue(); return m_heightAGLNode->getDoubleValue();
} }
double CService::getGroundSpeed() const double CService::getGroundSpeed() const
{ {
return groundSpeedNode->getDoubleValue(); return m_groundSpeedNode->getDoubleValue();
} }
double CService::getPitch() const double CService::getPitch() const
{ {
return pitchNode->getDoubleValue(); return m_pitchNode->getDoubleValue();
} }
double CService::getRoll() const double CService::getRoll() const
{ {
return rollNode->getDoubleValue(); return m_rollNode->getDoubleValue();
} }
double CService::getTrueHeading() const double CService::getTrueHeading() const
{ {
return trueHeadingNode->getDoubleValue(); return m_trueHeadingNode->getDoubleValue();
} }
bool CService::getAllWheelsOnGround() const bool CService::getAllWheelsOnGround() const
{ {
return wheelsOnGroundNode->getBoolValue(); return m_wheelsOnGroundNode->getBoolValue();
} }
int CService::getCom1Active() const int CService::getCom1Active() const
{ {
return (int)(com1ActiveNode->getDoubleValue() * 1000); return (int)(m_com1ActiveNode->getDoubleValue() * 1000);
} }
int CService::getCom1Standby() const int CService::getCom1Standby() const
{ {
return (int)(com1StandbyNode->getDoubleValue() * 1000); return (int)(m_com1StandbyNode->getDoubleValue() * 1000);
} }
int CService::getCom2Active() const int CService::getCom2Active() const
{ {
return (int)(com2ActiveNode->getDoubleValue() * 1000); return (int)(m_com2ActiveNode->getDoubleValue() * 1000);
} }
int CService::getCom2Standby() const int CService::getCom2Standby() const
{ {
return (int)(com2StandbyNode->getDoubleValue() * 1000); return (int)(m_com2StandbyNode->getDoubleValue() * 1000);
} }
int CService::getTransponderCode() const int CService::getTransponderCode() const
{ {
return transponderCodeNode->getIntValue(); return m_transponderCodeNode->getIntValue();
} }
int CService::getTransponderMode() const int CService::getTransponderMode() const
{ {
return transponderModeNode->getIntValue(); return m_transponderModeNode->getIntValue();
} }
bool CService::getTransponderIdent() const bool CService::getTransponderIdent() const
{ {
return transponderIdentNode->getBoolValue(); return m_transponderIdentNode->getBoolValue();
} }
bool CService::getBeaconLightsOn() const bool CService::getBeaconLightsOn() const
{ {
return beaconLightsNode->getBoolValue(); return m_beaconLightsNode->getBoolValue();
} }
bool CService::getLandingLightsOn() const bool CService::getLandingLightsOn() const
{ {
return landingLightsNode->getBoolValue(); return m_landingLightsNode->getBoolValue();
} }
bool CService::getNavLightsOn() const bool CService::getNavLightsOn() const
{ {
return navLightsNode->getBoolValue(); return m_navLightsNode->getBoolValue();
} }
bool CService::getStrobeLightsOn() const bool CService::getStrobeLightsOn() const
{ {
return strobeLightsNode->getBoolValue(); return m_strobeLightsNode->getBoolValue();
} }
bool CService::getTaxiLightsOn() const bool CService::getTaxiLightsOn() const
{ {
return taxiLightsNode->getBoolValue(); return m_taxiLightsNode->getBoolValue();
} }
double CService::getPressAlt() const double CService::getPressAlt() const
{ {
if (altimeterServiceableNode->getBoolValue()){ if (m_altimeterServiceableNode->getBoolValue()){
return pressAltitudeFtNode->getDoubleValue(); return m_pressAltitudeFtNode->getDoubleValue();
} else { } else {
return altitudeMSLNode->getDoubleValue(); return m_altitudeMSLNode->getDoubleValue();
} }
} }
void CService::setCom1Active(int freq) void CService::setCom1Active(int freq)
{ {
com1ActiveNode->setDoubleValue(freq /(double)1000); m_com1ActiveNode->setDoubleValue(freq /(double)1000);
} }
void CService::setCom1Standby(int freq) void CService::setCom1Standby(int freq)
{ {
com1StandbyNode->setDoubleValue(freq /(double)1000); m_com1StandbyNode->setDoubleValue(freq /(double)1000);
} }
void CService::setCom2Active(int freq) void CService::setCom2Active(int freq)
{ {
com2ActiveNode->setDoubleValue(freq /(double)1000); m_com2ActiveNode->setDoubleValue(freq /(double)1000);
} }
void CService::setCom2Standby(int freq) void CService::setCom2Standby(int freq)
{ {
com2StandbyNode->setDoubleValue(freq /(double)1000); m_com2StandbyNode->setDoubleValue(freq /(double)1000);
} }
void CService::setTransponderCode(int code) void CService::setTransponderCode(int code)
{ {
transponderCodeNode->setIntValue(code); m_transponderCodeNode->setIntValue(code);
} }
void CService::setTransponderMode(int mode) void CService::setTransponderMode(int mode)
{ {
transponderModeNode->setIntValue(mode); m_transponderModeNode->setIntValue(mode);
} }
double CService::getFlapsDeployRatio() const double CService::getFlapsDeployRatio() const
{ {
return flapsDeployRatioNode->getFloatValue(); return m_flapsDeployRatioNode->getFloatValue();
} }
double CService::getGearDeployRatio() const double CService::getGearDeployRatio() const
{ {
return gearDeployRatioNode->getFloatValue(); return m_gearDeployRatioNode->getFloatValue();
} }
int CService::getNumberOfEngines() const int CService::getNumberOfEngines() const
@ -289,12 +289,12 @@ std::vector<double> CService::getEngineN1Percentage() const
double CService::getSpeedBrakeRatio() const double CService::getSpeedBrakeRatio() const
{ {
return speedBrakeDeployRatioNode->getFloatValue(); return m_speedBrakeDeployRatioNode->getFloatValue();
} }
double CService::getGroundElevation() const double CService::getGroundElevation() const
{ {
return groundElevation->getDoubleValue(); return m_groundElevationNode->getDoubleValue();
} }
std::string CService::getAircraftModelFilename() const std::string CService::getAircraftModelFilename() const
@ -313,7 +313,7 @@ std::string CService::getAircraftModelString() const
std::string CService::getAircraftName() const std::string CService::getAircraftName() const
{ {
return aircraftNameNode->getStringValue(); return m_aircraftNameNode->getStringValue();
} }
static const char* introspection_service = DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE; static const char* introspection_service = DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE;

View file

@ -203,42 +203,42 @@ protected:
DBusHandlerResult dbusMessageHandler(const CDBusMessage& message) override; DBusHandlerResult dbusMessageHandler(const CDBusMessage& message) override;
private: private:
SGPropertyNode_ptr textMessageNode; SGPropertyNode_ptr m_textMessageNode;
SGPropertyNode_ptr aircraftModelPathNode; SGPropertyNode_ptr m_aircraftModelPathNode;
//SGPropertyNode_ptr aircraftLiveryNode; //SGPropertyNode_ptr aircraftLiveryNode;
//SGPropertyNode_ptr aircraftIcaoCodeNode; //SGPropertyNode_ptr aircraftIcaoCodeNode;
SGPropertyNode_ptr aircraftDescriptionNode; SGPropertyNode_ptr m_aircraftDescriptionNode;
SGPropertyNode_ptr isPausedNode; SGPropertyNode_ptr m_isPausedNode;
SGPropertyNode_ptr latitudeNode; SGPropertyNode_ptr m_latitudeNode;
SGPropertyNode_ptr longitudeNode; SGPropertyNode_ptr m_longitudeNode;
SGPropertyNode_ptr altitudeMSLNode; SGPropertyNode_ptr m_altitudeMSLNode;
SGPropertyNode_ptr heightAGLNode; SGPropertyNode_ptr m_heightAGLNode;
SGPropertyNode_ptr groundSpeedNode; SGPropertyNode_ptr m_groundSpeedNode;
SGPropertyNode_ptr pitchNode; SGPropertyNode_ptr m_pitchNode;
SGPropertyNode_ptr rollNode; SGPropertyNode_ptr m_rollNode;
SGPropertyNode_ptr trueHeadingNode; SGPropertyNode_ptr m_trueHeadingNode;
SGPropertyNode_ptr wheelsOnGroundNode; SGPropertyNode_ptr m_wheelsOnGroundNode;
SGPropertyNode_ptr com1ActiveNode; SGPropertyNode_ptr m_com1ActiveNode;
SGPropertyNode_ptr com1StandbyNode; SGPropertyNode_ptr m_com1StandbyNode;
SGPropertyNode_ptr com2ActiveNode; SGPropertyNode_ptr m_com2ActiveNode;
SGPropertyNode_ptr com2StandbyNode; SGPropertyNode_ptr m_com2StandbyNode;
SGPropertyNode_ptr transponderCodeNode; SGPropertyNode_ptr m_transponderCodeNode;
SGPropertyNode_ptr transponderModeNode; SGPropertyNode_ptr m_transponderModeNode;
SGPropertyNode_ptr transponderIdentNode; SGPropertyNode_ptr m_transponderIdentNode;
SGPropertyNode_ptr beaconLightsNode; SGPropertyNode_ptr m_beaconLightsNode;
SGPropertyNode_ptr landingLightsNode; SGPropertyNode_ptr m_landingLightsNode;
SGPropertyNode_ptr navLightsNode; SGPropertyNode_ptr m_navLightsNode;
SGPropertyNode_ptr strobeLightsNode; SGPropertyNode_ptr m_strobeLightsNode;
SGPropertyNode_ptr taxiLightsNode; SGPropertyNode_ptr m_taxiLightsNode;
SGPropertyNode_ptr altimeterServiceableNode; SGPropertyNode_ptr m_altimeterServiceableNode;
SGPropertyNode_ptr pressAltitudeFtNode; SGPropertyNode_ptr m_pressAltitudeFtNode;
SGPropertyNode_ptr flapsDeployRatioNode; SGPropertyNode_ptr m_flapsDeployRatioNode;
SGPropertyNode_ptr gearDeployRatioNode; SGPropertyNode_ptr m_gearDeployRatioNode;
SGPropertyNode_ptr speedBrakeDeployRatioNode; SGPropertyNode_ptr m_speedBrakeDeployRatioNode;
SGPropertyNode_ptr groundElevation; SGPropertyNode_ptr m_groundElevationNode;
//SGPropertyNode_ptr numberEnginesNode; //SGPropertyNode_ptr numberEnginesNode;
//SGPropertyNode_ptr engineN1PercentageNode; //SGPropertyNode_ptr engineN1PercentageNode;
SGPropertyNode_ptr aircraftNameNode; SGPropertyNode_ptr m_aircraftNameNode;
}; };
} // namespace FGSwiftBus } // namespace FGSwiftBus