提交 8620ca8b 编写于 作者: mahuifa's avatar mahuifa

新功能:增加显示信息

    1、再界面上显示连接成功的NTP服务器地址和Socket连接状态;
    2、增加部分注释信息。
上级 e4b10ead
#---------------------------------------------------------------------------------------
# @功能: NTP时间同步客户端程序Demo
# 1、使用UDP进行通信;
# 2、毫秒级时间精度;
# 3、使用多个阿里云NTP时间同步服务器、腾讯云NTP时间同步服务器。
# @编译器: Desktop Qt 5.12.5 MSVC2017 64bit(也支持其它编译器)
# @Qt IDE D:/Qt/Qt5.12.5/Tools/QtCreator/share/qtcreator
#
# @开发者 mhf
# @邮箱 1603291350@qq.com
# @时间 2022-08-09 15:52:56
# @备注
#---------------------------------------------------------------------------------------
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
......
......@@ -4,6 +4,7 @@
#include <QDebug>
#include <QtEndian>
#include <QElapsedTimer>
#include <QMetaEnum>
NtpClient::NtpClient(QObject *parent) : QObject(parent)
{
......@@ -30,6 +31,8 @@ void NtpClient::close()
void NtpClient::on_connected()
{
qDebug() << "连接成功!";
QMetaEnum m = QMetaEnum::fromType<QAbstractSocket::SocketState>(); // 获取QUdpSocket连接状态字符串
emit updateData(QString("连接成功:%1 %2").arg(m_socket->peerName()).arg(m.key(m_socket->state())));
}
void NtpClient::getTime()
......@@ -146,7 +149,7 @@ void NtpClient::on_readData()
dateTime.setMSecsSinceEpoch(currentLocalTimestamp1);
strTime = dateTime.toString("yyyy-MM-dd HH:mm:ss zzz");
emit updateTime(strTime);
emit updateData(strTime);
#else // 计算方式2:往返时延Delay=(T4-T1)-(T3-T2) 实际时间=程序处理时间(timer.elapsed()) + 服务器数据发出时间(T3)+ 通信时延(Delay)
qint64 currentLocalTimestamp2 = timer.elapsed() + translateTimestamp + (((currentLocalTimestamp - originTimestamp) - (translateTimestamp - receiveTimestamp)) / 2);
dateTime.setMSecsSinceEpoch(currentLocalTimestamp2);
......
......@@ -32,7 +32,7 @@ public:
void getTime();
signals:
void updateTime(const QString& time); // 更新时间
void updateData(const QString& time); // 添加显示到界面上文本框中的信息
private slots:
void on_connected();
......
......@@ -8,8 +8,9 @@ Widget::Widget(QWidget *parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowTitle("NTP时间同步客户端");
connect(&m_ntpClient, &NtpClient::updateTime, ui->textEdit, &QTextEdit::append);
connect(&m_ntpClient, &NtpClient::updateData, ui->textEdit, &QTextEdit::append);
}
Widget::~Widget()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册