頁面展示 運用了大量的背景圖片,按鈕圖片;
通信設置
/*
* Copyright (c) 2019,浙江智瀾科技有限公司
* All rights reserved.
*
* 摘 要:udp通信,與ros進行udp通信,進而與掃地機通信
*
* 當前版本:1.1
* 作 者:聶咸豐
* 完成日期:2019 年 7 月 10 日
*
* 取代版本:1.0
* 作 者:張雪平
* 完成日期:2019 年 5 月 12 日
*/
#ifndef CARUDP_H
#define CARUDP_H
#include <QDialog>
#include <QLabel>
#include <QTextCodec>
#include <QPainter>
#include <QTimer>
#include <QTime>
#include <QUdpSocket>
#include <QNetworkInterface>
#include <QDebug>
#include "common.h"
/*
* g_recviveData[RECV_DATA_BASE+0] - 清理寄存器
* g_recviveData[RECV_DATA_BASE+2~3] - 滾刷速度
* g_recviveData[RECV_DATA_BASE+4] - 燈寄存器
* g_recviveData[RECV_DATA_BASE+5] - 電源速度
* g_recviveData[RECV_DATA_BASE+6] - 電源電量
* g_recviveData[RECV_DATA_BASE+7] - 液位寄存器
*/
static QByteArray g_recviveDat; // UDP接受數據
namespace Ui {
class carUdp;
}
class carUdp : public QDialog
{
Q_OBJECT
public:
explicit carUdp(QWidget *parent = nullptr);
~carUdp();
void udpSend(QByteArray data); // UDP發送數據
bool udpSendConCmd(qint16 cmd, char data,char data1=0); // 發送控制命令:cmd為命令,char為數據(0-關閉/下降 1-開啟/關閉) 參數默認值為0
bool udpSendMapxy(qint16 cmd, int data1,int data2); // 發送地圖導航點坐標數據
bool udpSendQueryCmd(); // 發送查詢指令
void udpRecived(); // 接收函數
// ----
void setPoweValue(QPoint m_vXY,QLabel *label,int value=100); // 設置電池電量
void paintPower(QWidget *parent); // 繪制電池電量
void setScheduleValue(QPoint m_vXY,QLabel *label,int value=80); // 設置進度
void paintSchedule(QWidget *parent); // 繪制進度
void setWaterValue(QPoint m_vXY,QLabel *label,int value=100); // 設置水量
void paintWater(QWidget *parent); // 繪制水量
private slots:
void doProssTimeout(); // 超時處理
void doProssTimeoutToSendQueryCmd(); // 5S鍾查詢一次數據
void doProssUdpread(); // UDP接收數據
signals:
void doProseSendData(int powerdata,int waterdata,int scheduldata);
private:
Ui::carUdp *ui;
QUdpSocket *m_Socket; // 套接字
QString m_ipAddress; // IP地址
QByteArray m_sendData; // 發送數據幀
uint8_t m_sendCount; // 重發命令幀次數
bool m_receSuccessFlag; // 接收數據成功標志位
QTimer *m_timer;
QTimer *m_timerToSendQueryCmd; // udp接收查詢數據超時定時器
int m_powerValue; // 電量值
int m_scheduleValue; // 進度值
int m_waterValue; // 水量值
QPoint m_powerIcon_XY; // 電量繪制坐標
QPoint m_scheduleIcon_XY; // 進度繪制坐標
QPoint m_waterIcon_XY; // 水量繪制坐標
void init(); // 初始化函數
bool delayMsec(int msec); // 非阻塞延時(true接收應發成功,fals接收應答失敗)
};
#endif // CARUDP_H
*
*
*
*
*
*
*
