Issue #95 [XPlane] Get velocity data from xswiftbus in fast update timer timeout

This commit is contained in:
Mat Sutcliffe
2021-10-11 18:26:05 +01:00
parent 0faa7ed8fc
commit 3f57c66784
7 changed files with 233 additions and 0 deletions

View File

@@ -396,6 +396,27 @@ namespace XSwiftBus
sendDBusMessage(reply);
});
}
else if (message.getMethodName() == "getOwnAircraftVelocityData")
{
queueDBusCall([ = ]()
{
const double velocityX = m_velocityX.get();
const double velocityY = m_velocityY.get();
const double velocityZ = m_velocityZ.get();
const double pitchVelocity = m_pitchVelocity.get();
const double rollVelocity = m_rollVelocity.get();
const double headingVelocity = m_headingVelocity.get();
CDBusMessage reply = CDBusMessage::createReply(sender, serial);
reply.beginArgumentWrite();
reply.appendArgument(velocityX);
reply.appendArgument(velocityY);
reply.appendArgument(velocityZ);
reply.appendArgument(pitchVelocity);
reply.appendArgument(rollVelocity);
reply.appendArgument(headingVelocity);
sendDBusMessage(reply);
});
}
else if (message.getMethodName() == "getOwnAircraftCom1Data")
{
queueDBusCall([ = ]()
@@ -689,6 +710,48 @@ namespace XSwiftBus
sendDBusReply(sender, serial, getTrueHeadingDeg());
});
}
else if (message.getMethodName() == "getLocalXVelocityXMps")
{
queueDBusCall([ = ]()
{
sendDBusReply(sender, serial, getLocalXVelocityMps());
});
}
else if (message.getMethodName() == "getLocalYVelocityYMps")
{
queueDBusCall([ = ]()
{
sendDBusReply(sender, serial, getLocalYVelocityMps());
});
}
else if (message.getMethodName() == "getLocalZVelocityZMps")
{
queueDBusCall([ = ]()
{
sendDBusReply(sender, serial, getLocalZVelocityMps());
});
}
else if (message.getMethodName() == "getPitchRadPerSec")
{
queueDBusCall([ = ]()
{
sendDBusReply(sender, serial, getPitchRadPerSec());
});
}
else if (message.getMethodName() == "getRollRadPerSec")
{
queueDBusCall([ = ]()
{
sendDBusReply(sender, serial, getRollRadPerSec());
});
}
else if (message.getMethodName() == "getHeadingRadPerSec")
{
queueDBusCall([ = ]()
{
sendDBusReply(sender, serial, getHeadingRadPerSec());
});
}
else if (message.getMethodName() == "getAnyWheelOnGround")
{
queueDBusCall([ = ]()