• 大小: 136KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: C/C++
  • 标签: PTP  时间同步  

资源简介

使用PTP协议实现时间同步,精确到毫秒级

资源截图

代码片段和文件信息


#include “timeProc.h“
#include 

// 创建校时开始信息
int MakeTS_Start(char* buf)
{
unsigned short tskind = TS_Start;

memcpy(buf (void*)&tskind sizeof(tskind));

return 2;
}

// 创建Sync信息
int MakeTS_Sync(char* buf unsigned short seq)
{
unsigned short tskind = TS_Sync;
char* bufTMP = buf;

memcpy(bufTMP (void*)&tskind sizeof(tskind));
bufTMP += sizeof(tskind);
memcpy(bufTMP (void*)&seq sizeof(seq)); // 序号
bufTMP += sizeof(seq);

return bufTMP - buf;
}

// 创建FollowUp信息
int MakeTS_FollowUp(char* buf unsigned short seq long long t)
{
unsigned short tskind = TS_FollowUp;
char* bufTMP = buf;

memcpy(bufTMP (void*)&tskind sizeof(tskind));
bufTMP += sizeof(tskind);
memcpy(bufTMP (void*)&seq sizeof(seq)); // 序号
bufTMP += sizeof(seq);
memcpy(bufTMP (void*)&t sizeof(t)); // 时间戳
bufTMP += sizeof(t);

return bufTMP - buf;
}

// 创建OK信息
int MakeTS_OK(char* buf unsigned short seq)
{
unsigned short tskind = TS_OK;
char* bufTMP = buf;

memcpy(bufTMP (void*)&tskind sizeof(tskind));
bufTMP += sizeof(tskind);
memcpy(bufTMP (void*)&seq sizeof(seq)); // 序号
bufTMP += sizeof(seq);

return bufTMP - buf;
}

// 创建DelayReq信息
int MakeTS_DelayReq(char* buf)
{
unsigned short tskind = TS_DelayReq;
char* bufTMP = buf;

memcpy(bufTMP (void*)&tskind sizeof(tskind));
bufTMP += sizeof(tskind);

return bufTMP - buf;
}

// 创建DelayResp信息
int MakeTS_DelayResp(char* buf long long t)
{
unsigned short tskind = TS_DelayResp;
char* bufTMP = buf;

memcpy(bufTMP (void*)&tskind sizeof(tskind));
bufTMP += sizeof(tskind);
memcpy(bufTMP (void*)&t sizeof(t)); // 时间戳
bufTMP += sizeof(t);

return bufTMP - buf;
}

// SYSTIME转毫秒
long long SYSTime2MS(SYSTEMTIME time)
{
tm t;
t.tm_year = time.wYear - 1900;
t.tm_mon = time.wMonth - 1;
t.tm_mday = time.wDay;
t.tm_hour = time.wHour;
t.tm_min = time.wMinute;
t.tm_sec = time.wSecond;

long long time_ret = _mktime64(&t); // 转为1900年开始的秒数
time_ret = time_ret * 1000 + time.wMilliseconds; // 计算毫秒

return time_ret;
}

// 毫秒转SYSTIME
SYSTEMTIME MS2SYSTime(long long time)
{
long long t = time / 1000; // 转成秒
tm* tm_t = _localtime64(&t); // 转成1900年开始的时间

SYSTEMTIME systime; // 转成systime
systime.wYear = tm_t->tm_year + 1900;
systime.wMonth = tm_t->tm_mon + 1;
systime.wDay = tm_t->tm_mday;
systime.wHour = tm_t->tm_hour;
systime.wMinute = tm_t->tm_min;
systime.wSecond = tm_t->tm_sec;
systime.wMilliseconds = time % 1000;

return systime;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2630  2015-07-23 17:12  ptp\common\src\timeProc.cpp

     文件        855  2015-07-23 17:12  ptp\common\src\timeProc.h

     文件       2032  2015-07-23 17:12  ptp\PTPClient\PTPClient\PTPClient.cpp

     文件        460  2015-07-23 17:12  ptp\PTPClient\PTPClient\PTPClient.h

     文件      10636  2015-07-23 17:12  ptp\PTPClient\PTPClient\PTPClient.rc

     文件       6303  2015-07-23 17:12  ptp\PTPClient\PTPClient\PTPClient.vcxproj

     文件       2218  2015-07-23 17:12  ptp\PTPClient\PTPClient\PTPClient.vcxproj.filters

     文件      12660  2015-07-24 11:04  ptp\PTPClient\PTPClient\PTPClientDlg.cpp

     文件       1958  2015-07-23 18:02  ptp\PTPClient\PTPClient\PTPClientDlg.h

     文件       3051  2015-07-23 17:12  ptp\PTPClient\PTPClient\ReadMe.txt

     文件      67777  2015-07-23 17:12  ptp\PTPClient\PTPClient\res\PTPClient.ico

     文件        674  2015-07-23 17:12  ptp\PTPClient\PTPClient\res\PTPClient.rc2

     文件       2100  2015-07-23 17:12  ptp\PTPClient\PTPClient\resource.h

     文件        142  2015-07-23 17:12  ptp\PTPClient\PTPClient\stdafx.cpp

     文件       1632  2015-07-23 17:12  ptp\PTPClient\PTPClient\stdafx.h

     文件        234  2015-07-23 17:12  ptp\PTPClient\PTPClient\targetver.h

     文件        894  2015-07-23 17:12  ptp\PTPClient\PTPClient.sln

     文件       2032  2015-07-23 17:12  ptp\PTPServer\PTPServer\PTPServer.cpp

     文件        460  2015-07-23 17:12  ptp\PTPServer\PTPServer\PTPServer.h

     文件       8778  2015-07-23 17:12  ptp\PTPServer\PTPServer\PTPServer.rc

     文件       6301  2015-07-23 17:12  ptp\PTPServer\PTPServer\PTPServer.vcxproj

     文件       2218  2015-07-23 17:12  ptp\PTPServer\PTPServer\PTPServer.vcxproj.filters

     文件        143  2015-07-23 17:12  ptp\PTPServer\PTPServer\PTPServer.vcxproj.user

     文件       6208  2015-07-24 11:04  ptp\PTPServer\PTPServer\PTPServerDlg.cpp

     文件       1033  2015-07-24 11:04  ptp\PTPServer\PTPServer\PTPServerDlg.h

     文件       3051  2015-07-23 17:12  ptp\PTPServer\PTPServer\ReadMe.txt

     文件      67777  2015-07-23 17:12  ptp\PTPServer\PTPServer\res\PTPServer.ico

     文件        674  2015-07-23 17:12  ptp\PTPServer\PTPServer\res\PTPServer.rc2

     文件       1180  2015-07-23 17:12  ptp\PTPServer\PTPServer\resource.h

     文件        142  2015-07-23 17:12  ptp\PTPServer\PTPServer\stdafx.cpp

............此处省略15个文件信息

评论

共有 条评论