mirror of
https://github.com/azaion/autopilot.git
synced 2026-04-22 17:46:40 +00:00
Hard coded values to target location until real values are available.
Added function for remote which AI can call.
This commit is contained in:
@@ -22,6 +22,5 @@ SOURCES += \
|
||||
remoteControl.cpp
|
||||
|
||||
HEADERS += \
|
||||
defines.hpp \
|
||||
remoteControl.hpp
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#define FIFO_WHO_AM_I "AI"
|
||||
#define FIFO_TO_GIMBAL "/tmp/fifo_to_a8_gimbal"
|
||||
#define FIFO_FROM_GIMBAL "/tmp/fifo_from_a8_gimbal"
|
||||
@@ -5,12 +5,13 @@
|
||||
#include <QJsonObject>
|
||||
#include <QThread>
|
||||
#include <QTimer>
|
||||
#include "defines.hpp"
|
||||
#include <fcntl.h>
|
||||
#include <iostream>
|
||||
#include <random>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#ifdef FIFO_TEST
|
||||
#include <random>
|
||||
#endif
|
||||
|
||||
RemoteControl::RemoteControl() {}
|
||||
|
||||
@@ -75,7 +76,23 @@ void RemoteControl::createNamedPipe()
|
||||
}
|
||||
}
|
||||
|
||||
void RemoteControl::startCommunication()
|
||||
void RemoteControl::sendData(uint16_t top, uint16_t left, uint16_t bottom, uint16_t right)
|
||||
{
|
||||
qInfo().noquote().nospace() << "Enter a command (0 to exit): ";
|
||||
std::string input;
|
||||
std::cin >> input;
|
||||
|
||||
// Send command
|
||||
QJsonObject commandObject = {{"sender", FIFO_WHO_AM_I}, {"top", top}, {"left", left}, {"bottom", bottom}, {"right", right}};
|
||||
|
||||
QJsonDocument commandDocument(commandObject);
|
||||
std::string command = commandDocument.toJson(QJsonDocument::Compact).toStdString();
|
||||
write(mFifoFdOut, command.c_str(), command.size());
|
||||
qDebug().noquote().nospace() << "Sent: " << command;
|
||||
}
|
||||
|
||||
#ifdef FIFO_TEST
|
||||
void RemoteControl::startTest()
|
||||
{
|
||||
qInfo().noquote().nospace() << "Enter a command (0 to exit): ";
|
||||
std::string input;
|
||||
@@ -86,11 +103,11 @@ void RemoteControl::startCommunication()
|
||||
{"sender", FIFO_WHO_AM_I},
|
||||
{"latitude", 63.155653611},
|
||||
{"longitude", 23.827191389},
|
||||
{"altitude", randomFloatBetween(100, 500)},
|
||||
{"altitude", randomFloatBetween(10, 11)},
|
||||
{"yaw", randomFloatBetween(0.0f, 360.0f)},
|
||||
{"pitch", 0.0},
|
||||
{"target_x", (uint16_t) randomFloatBetween(0, 1279)},
|
||||
{"target_y", (uint16_t) randomFloatBetween(0, 719)},
|
||||
{"target_x", (uint16_t) randomFloatBetween(300, 979)},
|
||||
{"target_y", (uint16_t) randomFloatBetween(200, 519)},
|
||||
{"target_pixel_width", 20},
|
||||
{"target_pixel_height", 10},
|
||||
{"target_real_width", 5},
|
||||
@@ -139,8 +156,6 @@ void RemoteControl::startCommunication()
|
||||
QCoreApplication::processEvents();
|
||||
QThread::msleep(100);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
float RemoteControl::randomFloatBetween(float min, float max)
|
||||
@@ -153,3 +168,4 @@ float RemoteControl::randomFloatBetween(float min, float max)
|
||||
// Generate a random float between min and max (inclusive)
|
||||
return dist(gen);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,15 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#define FIFO_WHO_AM_I "AI"
|
||||
#define FIFO_TO_GIMBAL "/tmp/fifo_to_a8_gimbal"
|
||||
#define FIFO_FROM_GIMBAL "/tmp/fifo_from_a8_gimbal"
|
||||
//#define FIFO_TEST
|
||||
|
||||
class RemoteControl
|
||||
{
|
||||
public:
|
||||
RemoteControl();
|
||||
~RemoteControl();
|
||||
void createNamedPipe(void);
|
||||
void startCommunication(void);
|
||||
void sendData(uint16_t top, uint16_t left, uint16_t bottom, uint16_t right);
|
||||
#ifdef FIFO_TEST
|
||||
void startTest(void);
|
||||
#endif
|
||||
|
||||
private:
|
||||
#ifdef FIFO_TEST
|
||||
float randomFloatBetween(float min, float max);
|
||||
#endif
|
||||
int mFifoFdIn;
|
||||
int mFifoFdOut;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user