资源简介
使用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个文件信息
评论
共有 条评论