send command to xplane received by mqtt
This commit is contained in:
parent
4042ebb93d
commit
b21ce7d6ac
30
readref.c
30
readref.c
@ -64,16 +64,10 @@ int *strtoint(char *in, size_t start, size_t n)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void onMessage(struct mosquitto *mqtt, void *obj, const struct mosquitto_message *message)
|
||||
void requestRrefFromXPlane(const struct mosquitto_message *message)
|
||||
{
|
||||
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)
|
||||
{
|
||||
id = strtoint(message->payload, MQTT_RREF_REQUEST_START_ID, MQTT_RREF_REQUEST_LENGTH_ID);
|
||||
@ -94,6 +88,28 @@ void onMessage(struct mosquitto *mqtt, void *obj, const struct mosquitto_message
|
||||
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
|
||||
{
|
||||
fprintf(stderr, "Unkown topic %s\n", message->topic);
|
||||
|
Loading…
x
Reference in New Issue
Block a user