添加RTK和RC输入显示,防止没有数据输入

This commit is contained in:
hm
2022-11-17 18:19:38 +08:00
parent 3975375909
commit c93eb266de
7 changed files with 166 additions and 12 deletions
+2 -2
View File
@@ -170,14 +170,14 @@ StatusUI::StatusUI(QWidget *parent) :
{3,StateWidget::state::red},
{5,StateWidget::state::orange},
{15,StateWidget::state::green}});
/*
install(battery,0,"左轮速[RPM]",0,
QMap<QVariant, StateWidget::state>{{1,StateWidget::state::red},
{120,StateWidget::state::green}});
install(battery,0,"右轮速[RPM]",0,
QMap<QVariant, StateWidget::state>{{1,StateWidget::state::red},
{120,StateWidget::state::green}});
*/
install(communication,0,"信号[%]",0,
QMap<QVariant, StateWidget::state>{{50,StateWidget::state::red},
+35 -8
View File
@@ -165,8 +165,12 @@ MainWindow::MainWindow(QWidget *parent)
qRegisterMetaType<QList<uint16_t>>("QList<uint16_t>");
qRegisterMetaType<uint32_t>("uint32_t");
qRegisterMetaType<uint16_t>("uint16_t");
qRegisterMetaType<uint8_t>("uint8_t");
qRegisterMetaType<MavLinkNode::_vehicle>("MavLinkNode::_vehicle");
@@ -366,6 +370,12 @@ MainWindow::MainWindow(QWidget *parent)
toolsui->remotecontrol,SLOT(setChannelOveride(QList<uint16_t>)));
*/
//dlink --- this
connect(dlink,SIGNAL(RC_Byte(uint32_t)),this,SLOT(RC_Byte(uint32_t)));
connect(dlink,SIGNAL(RTCM_Byte(uint32_t)),this,SLOT(RTCM_Byte(uint32_t)));
//dlink --- toolui-index3
connect(dlink->mavlinknode->Terminal,SIGNAL(Recieve(QString)),
toolsui->index3,SLOT(Recieve(QString)));
@@ -375,10 +385,7 @@ MainWindow::MainWindow(QWidget *parent)
//dlink ---- rc
qRegisterMetaType<QList<uint16_t>>("QList<uint16_t>");
qRegisterMetaType<uint32_t>("uint32_t");
qRegisterMetaType<uint16_t>("uint16_t");
qRegisterMetaType<uint8_t>("uint8_t");
connect(dlink->mavlinknode->RC,SIGNAL(new_remote_ctrl(QList<uint16_t>)),
toolsui->remotecontrol,SLOT(setChannelOveride(QList<uint16_t>)));
@@ -440,6 +447,7 @@ MainWindow::MainWindow(QWidget *parent)
//tools -------- dlink
connect(dlink->mavlinknode,SIGNAL(recieveData(int,QByteArray)),
toolsui,SIGNAL(recieveData(int,QByteArray)));
@@ -475,7 +483,7 @@ MainWindow::MainWindow(QWidget *parent)
this,SLOT(updateUI()));
*/
qRegisterMetaType<MavLinkNode::_vehicle>("MavLinkNode::_vehicle");
connect(dlink->mavlinknode,SIGNAL(signal_vehicle(MavLinkNode::_vehicle)),
this,SLOT(updateVehicle(MavLinkNode::_vehicle)));
@@ -1280,6 +1288,25 @@ void MainWindow::setCommunicationLostState(bool flag)
}
void MainWindow::RTCM_Byte(uint32_t count)
{
if(copk)
{
copk->setRTCMByte(count);
}
}
void MainWindow::RC_Byte(uint32_t count)
{
if(copk)
{
copk->setRCByte(count);
}
}
void MainWindow::updateDlink(float rssi, uint64_t in,uint64_t out)
{
statusui->setValue(1,1,0,QString::number(rssi,'f',0));
@@ -2632,12 +2659,12 @@ void MainWindow::actuator_info_brake(Parse::_actuator info)
if(info.left_brake == 0x11)
{
healthui->setValue(18,tr("变体抱死"));
healthui->setColor(18,HealthUI::state::failure);//变体抱死
healthui->setColor(18,HealthUI::state::success);//变体抱死
}
else
{
healthui->setValue(18,tr("变体解锁"));
healthui->setColor(18,HealthUI::state::success);//变体解锁
healthui->setColor(18,HealthUI::state::failure);//变体解锁
}
}
}
+5
View File
@@ -122,6 +122,11 @@ public slots:
void onTabIndexChanged(const int &index);
void RTCM_Byte(uint32_t count);
void RC_Byte(uint32_t count);
protected slots:
bool event(QEvent *event);
+64
View File
@@ -585,6 +585,20 @@ void Cockpit::setLed(QColor LED)
m_Target.isUpdate = true;
}
void Cockpit::setRCByte(uint32_t byte)
{
m_State.rc_byte = byte;
m_State.isUpdate = true;
}
void Cockpit::setRTCMByte(uint32_t byte)
{
m_State.rtcm_byte = byte;
m_State.isUpdate = true;
}
void Cockpit::paintEvent(QPaintEvent *)
{
@@ -617,6 +631,7 @@ void Cockpit::paintEvent(QPaintEvent *)
drawVRate(&painter);
drawYawScale(&painter);
drawTopStatuts(&painter);
drawRC_RTCM(&painter);
}
else//简单显示
{
@@ -2162,3 +2177,52 @@ void Cockpit::drawTopStatuts(QPainter *painter)
painter->restore();//所有结束
}
void Cockpit::drawRC_RTCM(QPainter *painter)
{
painter->save();
//平移坐标
painter->translate(600,800);
QPen ePen;
QFont font;
//画一个半透明的小方块
painter->save();
// painter->setOpacity(0.3);
ePen.setWidth(8);
ePen.setColor(Qt::green);
painter->setPen(ePen);
painter->setBrush(QColor("#000000"));
painter->drawRect(QRect(0,0,550,150));
painter->drawRect(QRect(0,200,550,150));
painter->restore();//画底部结束
//画刻度
painter->save();
ePen.setColor(Qt::white);
ePen.setWidth(12);
font.setPixelSize(90);
font.setWeight(QFont::Bold);
font.setFamily("黑体");//非衬线
painter->setPen(ePen);
painter->setFont(font);
//在下方显示当前值
painter->drawText(QRect(10,0,530,150),Qt::AlignVCenter|Qt::AlignLeft,tr("RCin:") + QString::number(m_State.rc_byte));
painter->drawText(QRect(10,200,530,150),Qt::AlignVCenter|Qt::AlignLeft,tr("RTCM:") + QString::number(m_State.rtcm_byte));
painter->restore();//画当前值结束
painter->restore();//全部结束
}
+7 -1
View File
@@ -92,7 +92,8 @@ typedef struct {
quint8 AltitudeFlag = 0;
uint32_t rc_byte;
uint32_t rtcm_byte;
bool isUpdate;
@@ -202,6 +203,10 @@ public Q_SLOTS:
void setWP_dist(double value);
void setAlt_err(double value);
void setRCByte(uint32_t byte);
void setRTCMByte(uint32_t byte);
protected:
void mouseMoveEvent(QMouseEvent *e);
@@ -230,6 +235,7 @@ protected:
void drawTopStatuts(QPainter *painter);
void drawRC_RTCM(QPainter *painter);
private slots:
void UpdateTimeout(void);
+29 -1
View File
@@ -61,6 +61,9 @@ DLink::DLink(QObject *parent) : QObject(parent)
}
RecieveRCtime = QDateTime::currentMSecsSinceEpoch();
RecieveRTCMtime = QDateTime::currentMSecsSinceEpoch();
}
DLink::~DLink()
{
@@ -137,6 +140,18 @@ void DLink::bitTimerout(void)
last = QDateTime::currentMSecsSinceEpoch();
emit info(rssi_bits,in_bits,out_bits);
if((QDateTime::currentMSecsSinceEpoch() - RecieveRCtime) > 2000)
{
emit RC_Byte(0);
}
if((QDateTime::currentMSecsSinceEpoch() - RecieveRTCMtime) > 2000)
{
emit RTCM_Byte(0);
}
}
}
@@ -846,7 +861,15 @@ void DLink::readRTKPendingDatagrams(void)
if(datagram.size() > 0)
{
emit getRTK(SourceType::s_port,datagram);
emit RTCM_Byte(datagram.size());
RecieveRTCMtime = QDateTime::currentMSecsSinceEpoch();
isRecieveRTCM = true;
if(sendRTCM == true)
{
emit getRTK(SourceType::s_port,datagram);
}
}
}
}
@@ -865,6 +888,11 @@ void DLink::readRemotePendingDatagrams(void)
if(datagram.size() > 0)
{
emit RC_Byte(datagram.size());
RecieveRCtime = QDateTime::currentMSecsSinceEpoch();
isRecieveRC = true;
emit getRemote(SourceType::s_port,datagram);
}
}
+24
View File
@@ -111,6 +111,10 @@ signals:
void getRTK(quint32,QByteArray);
void RTCM_Byte(uint32_t);
void RC_Byte(uint32_t);
void info(double rssi,double in,double out);
public slots:
@@ -140,6 +144,18 @@ public slots:
//void replay(QString file);
void setSendRTCM(bool flag)
{
sendRTCM = flag;
}
bool isSendRTCM(void)
{
return sendRTCM;
}
private slots:
void bitTimerout(void);
@@ -196,6 +212,14 @@ protected:
double in_bits = 0;
double rssi_bits = 0;
bool sendRTCM = false;
bool isRecieveRC = false;
bool isRecieveRTCM = false;
uint64_t RecieveRCtime = 0;
uint64_t RecieveRTCMtime = 0;
};