Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mahuifa
QMDemo
提交
8620ca8b
Q
QMDemo
项目概览
mahuifa
/
QMDemo
通知
1
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
QMDemo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8620ca8b
编写于
8月 09, 2022
作者:
mahuifa
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新功能:增加显示信息
1、再界面上显示连接成功的NTP服务器地址和Socket连接状态; 2、增加部分注释信息。
上级
e4b10ead
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
20 addition
and
3 deletion
+20
-3
FunctionalModule/NtpClient/NtpClient.pro
FunctionalModule/NtpClient/NtpClient.pro
+13
-0
FunctionalModule/NtpClient/ntpclient.cpp
FunctionalModule/NtpClient/ntpclient.cpp
+4
-1
FunctionalModule/NtpClient/ntpclient.h
FunctionalModule/NtpClient/ntpclient.h
+1
-1
FunctionalModule/NtpClient/widget.cpp
FunctionalModule/NtpClient/widget.cpp
+2
-1
未找到文件。
FunctionalModule/NtpClient/NtpClient.pro
浏览文件 @
8620ca8b
#---------------------------------------------------------------------------------------
#
@
功能:
NTP
时间同步客户端程序
Demo
#
1
、使用
UDP
进行通信;
#
2
、毫秒级时间精度;
#
3
、使用多个阿里云
NTP
时间同步服务器、腾讯云
NTP
时间同步服务器。
#
@
编译器:
Desktop
Qt
5.12
.
5
MSVC2017
64
bit
(也支持其它编译器)
#
@
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
...
...
FunctionalModule/NtpClient/ntpclient.cpp
浏览文件 @
8620ca8b
...
...
@@ -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
update
Time
(
strTime
);
emit
update
Data
(
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
);
...
...
FunctionalModule/NtpClient/ntpclient.h
浏览文件 @
8620ca8b
...
...
@@ -32,7 +32,7 @@ public:
void
getTime
();
signals:
void
update
Time
(
const
QString
&
time
);
// 更新时间
void
update
Data
(
const
QString
&
time
);
// 添加显示到界面上文本框中的信息
private
slots
:
void
on_connected
();
...
...
FunctionalModule/NtpClient/widget.cpp
浏览文件 @
8620ca8b
...
...
@@ -8,8 +8,9 @@ Widget::Widget(QWidget *parent)
,
ui
(
new
Ui
::
Widget
)
{
ui
->
setupUi
(
this
);
this
->
setWindowTitle
(
"NTP时间同步客户端"
);
connect
(
&
m_ntpClient
,
&
NtpClient
::
update
Time
,
ui
->
textEdit
,
&
QTextEdit
::
append
);
connect
(
&
m_ntpClient
,
&
NtpClient
::
update
Data
,
ui
->
textEdit
,
&
QTextEdit
::
append
);
}
Widget
::~
Widget
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录