This commit is contained in:
hm
2020-03-05 21:20:30 +08:00
parent a27878ce87
commit 540627aa95
4 changed files with 57 additions and 9 deletions
+1
View File
@@ -138,6 +138,7 @@ void MainWindow::dlink_triggered()
if (QDialog::Accepted == ret)
{
dlink->setupPort(dlg.port, dlg.baudrate,dlg.parity);
//qDebug() << "setup serial port";
}
}
+51 -7
View File
@@ -88,8 +88,10 @@ void MavLinkNode::process()//线程函数
//解码从串口来的
datagram.clear();
datagram = readbuff(SourceType::s_port);//每次全部读取
//qDebug() << "serial port parse";
if(!datagram.isEmpty())
{
//qDebug() << "serial port parse";
Mavlinkparse(SourceType::s_port,datagram);
}
@@ -170,14 +172,10 @@ QByteArray MavLinkNode::readbuff(quint32 src)
}
break;
}
//qDebug() << datagram;
return datagram;
}
void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
{
mavlink_message_t msg;
@@ -191,9 +189,56 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
}
else
{
if (status.parse_state == MAVLINK_PARSE_STATE_GOT_BAD_CRC1)
switch(status.parse_state)
{
qDebug() << "mavlink recieve crc error";
case MAVLINK_PARSE_STATE_UNINIT:{
qDebug() << "MAVLINK_PARSE_STATE_UNINIT";
}break;
case MAVLINK_PARSE_STATE_IDLE:{
qDebug() << "MAVLINK_PARSE_STATE_IDLE";
}break;
case MAVLINK_PARSE_STATE_GOT_STX:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_STX";
}break;
case MAVLINK_PARSE_STATE_GOT_LENGTH:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_LENGTH";
}break;
case MAVLINK_PARSE_STATE_GOT_INCOMPAT_FLAGS:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_INCOMPAT_FLAGS";
}break;
case MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS";
}break;
case MAVLINK_PARSE_STATE_GOT_SEQ:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_SEQ";
}break;
case MAVLINK_PARSE_STATE_GOT_SYSID:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_SYSID";
}break;
case MAVLINK_PARSE_STATE_GOT_COMPID:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_COMPID";
}break;
case MAVLINK_PARSE_STATE_GOT_MSGID1:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID1";
}break;
case MAVLINK_PARSE_STATE_GOT_MSGID2:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID2";
}break;
case MAVLINK_PARSE_STATE_GOT_MSGID3:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_MSGID3";
}break;
case MAVLINK_PARSE_STATE_GOT_PAYLOAD:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_PAYLOAD";
}break;
case MAVLINK_PARSE_STATE_GOT_CRC1:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_CRC1";
}break;
case MAVLINK_PARSE_STATE_GOT_BAD_CRC1:{
qDebug() << "MAVLINK_PARSE_STATE_GOT_BAD_CRC1";
}break;
case MAVLINK_PARSE_STATE_SIGNATURE_WAIT:{
qDebug() << "MAVLINK_PARSE_STATE_SIGNATURE_WAIT";
}break;
}
}
}
@@ -253,7 +298,6 @@ void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
void MavLinkNode::StatusParse(mavlink_message_t msg)
{
//qDebug() << "msgid:" << msg.msgid;
switch (msg.msgid) {
case MAVLINK_MSG_ID_AUTOPILOT_VERSION: {
mavlink_msg_autopilot_version_decode(&msg,&vehicle.autopilot_version);
+1 -2
View File
@@ -58,11 +58,11 @@ void DLink::setupPort(const QString port, qint32 baudrate, QSerialPort::Parity p
mavlinknode->start();
connect(serialPort, SIGNAL(readyRead()), this, SLOT(readPendingDatagramsSerialPort()));
qDebug() << "Serial Port Open Success";
}
else
{
qDebug() << "Serial Port Open Fail";
delete serialPort;
serialPort = nullptr;
}
@@ -132,7 +132,6 @@ void DLink::readPendingDatagramsClient(void)
Clientsock->readDatagram(datagram.data(), datagram.size());
mavlinknode->setbuff(SourceType::c_sock,datagram);
}
}
+4
View File
@@ -8,6 +8,10 @@ CONFIG += c++11
TARGET = Dlink
TEMPLATE = lib
#DEFINES += DEBUG
DEFINES += DLINK_LIBRARY