send command to xplane received by mqtt

This commit is contained in:
damage 2024-01-24 22:49:28 +01:00
parent 4042ebb93d
commit b21ce7d6ac

View File

@ -64,16 +64,10 @@ int *strtoint(char *in, size_t start, size_t n)
return ret; return ret;
} }
void onMessage(struct mosquitto *mqtt, void *obj, const struct mosquitto_message *message) void requestRrefFromXPlane(const struct mosquitto_message *message)
{ {
int *id, *frequency; int *id, *frequency;
char rref[XPLANE_RREF_MAX_LENGTH];
printf("Received message %.*s on topic %s\n", message->payloadlen, (char *)message->payload, message->topic);
if (strcmp(message->topic, "/xplane/meta/rref") == 0)
{
printf("found rref request\n");
if (message->payloadlen >= MQTT_RREF_REQUEST_MIN_LENGTH) if (message->payloadlen >= MQTT_RREF_REQUEST_MIN_LENGTH)
{ {
id = strtoint(message->payload, MQTT_RREF_REQUEST_START_ID, MQTT_RREF_REQUEST_LENGTH_ID); id = strtoint(message->payload, MQTT_RREF_REQUEST_START_ID, MQTT_RREF_REQUEST_LENGTH_ID);
@ -93,6 +87,28 @@ void onMessage(struct mosquitto *mqtt, void *obj, const struct mosquitto_message
sendToXPlane(xPlaneSocket, DEST_SERVER, DEST_PORT, "RREF", (char *)&drefToRead, sizeof(drefToRead)); sendToXPlane(xPlaneSocket, DEST_SERVER, DEST_PORT, "RREF", (char *)&drefToRead, sizeof(drefToRead));
} }
}
void sendCommandToXPlane(const struct mosquitto_message *message)
{
char *command;
if (message->payloadlen > 0) {
sendToXPlane(xPlaneSocket, DEST_SERVER, DEST_PORT, "CMND", (char *)message->payload, message->payloadlen);
}
}
void onMessage(struct mosquitto *mqtt, void *obj, const struct mosquitto_message *message)
{
printf("Received message %.*s on topic %s\n", message->payloadlen, (char *)message->payload, message->topic);
if (strcmp(message->topic, "/xplane/meta/rref") == 0)
{
requestRrefFromXPlane(message);
}
else if (strcmp(message->topic, "/xplane/meta/cmnd") == 0)
{
sendCommandToXPlane(message);
} }
else else
{ {