mirror of
https://github.com/azaion/autopilot.git
synced 2026-04-22 08:36:33 +00:00
Added better handling for command line parameters
This commit is contained in:
+15
-7
@@ -1,3 +1,4 @@
|
||||
#include <QCommandLineParser>
|
||||
#include <QCoreApplication>
|
||||
#include <QThread>
|
||||
#include "config.hpp"
|
||||
@@ -9,18 +10,25 @@
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QCoreApplication app(argc, argv);
|
||||
SerialCommand serialCommand;
|
||||
SerialPort serialPort;
|
||||
Config::setInitalValues(&serialPort, &serialCommand);
|
||||
|
||||
QCommandLineParser parser;
|
||||
QCommandLineOption lOption(QStringList() << "l", "Use local mode");
|
||||
parser.addOption(lOption);
|
||||
QCommandLineOption pOption(QStringList() << "p", "Use serial port", "value");
|
||||
parser.addOption(pOption);
|
||||
parser.process(app);
|
||||
bool useRemoteMode = true;
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
if (QString(argv[i]) == "-l") {
|
||||
if (parser.isSet(lOption)) {
|
||||
useRemoteMode = false;
|
||||
break;
|
||||
}
|
||||
QString useSerialPort;
|
||||
if (parser.isSet(pOption)) {
|
||||
useSerialPort = parser.value(pOption);
|
||||
}
|
||||
|
||||
SerialCommand serialCommand;
|
||||
SerialPort serialPort(useSerialPort);
|
||||
Config::setInitalValues(&serialPort, &serialCommand);
|
||||
|
||||
// Remote mode will read commands from pipe
|
||||
if (useRemoteMode == true) {
|
||||
RemoteControl remoteControl;
|
||||
|
||||
@@ -5,11 +5,15 @@
|
||||
#include "defines.hpp"
|
||||
#include "utilsCRC16.hpp"
|
||||
|
||||
SerialPort::SerialPort()
|
||||
SerialPort::SerialPort(QString usePort)
|
||||
: QObject(nullptr)
|
||||
{
|
||||
if (usePort.isEmpty() == true) {
|
||||
usePort = SERIAL_PORT;
|
||||
}
|
||||
|
||||
mSerialPort = new QSerialPort();
|
||||
mSerialPort->setPortName(SERIAL_PORT);
|
||||
mSerialPort->setPortName(usePort);
|
||||
mSerialPort->setBaudRate(QSerialPort::Baud115200);
|
||||
mSerialPort->setDataBits(QSerialPort::Data8);
|
||||
mSerialPort->setStopBits(QSerialPort::OneStop);
|
||||
@@ -17,9 +21,11 @@ SerialPort::SerialPort()
|
||||
|
||||
// Open the serial port
|
||||
if (openPort() == false) {
|
||||
qCritical() << "SerialPort(): Unable to open port";
|
||||
qCritical().noquote().nospace() << "SerialPort(): Unable to open port " << port;
|
||||
return;
|
||||
}
|
||||
|
||||
qDebug().noquote().nospace() << "SerialPort(): Opened port " << port;
|
||||
}
|
||||
|
||||
SerialPort::~SerialPort()
|
||||
|
||||
@@ -9,7 +9,7 @@ class SerialPort : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SerialPort();
|
||||
SerialPort(QString usePort);
|
||||
~SerialPort();
|
||||
|
||||
bool openPort();
|
||||
|
||||
Reference in New Issue
Block a user