86 #if defined(__linux__) || defined(__FreeBSD__) 90 #elif defined(WIN32) || defined (WIN64) 92 #include <sys/timeb.h> 96 #define MAX_TS_CARDS 4 109 #if defined(WIN32) || defined (WIN64) 111 #if defined(_MSC_VER) 118 int gettimeofday(
struct timeval *tv,
struct timezone *tz);
123 #define NT_CONST64(a) a##ULL 124 #define UNIX_EPOCH_OFFSET_MAGIC 116444736000000000ULL 144 #if defined(WIN32) || defined (WIN64) 150 printf(
"Stopping application (%d)\n", sig);
166 struct timeval timeofday;
167 struct timezone timeZone;
172 *osTime = (uint64_t)(timeofday.tv_sec & 0xFFFFFFFF);
182 char wday[7][4]={
"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"};
183 char wmon[12][4]={
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"};
185 timeT = (time_t)(timeValue/1000000000ULL);
186 ptm = gmtime(&timeT);
188 printf(
"Time is invalid");
190 printf(
"UTC Time : %s %d-%s-%d %02d:%02d:%02d.%09lld",
191 wday[ptm->tm_wday], ptm->tm_mday, wmon[ptm->tm_mon], ptm->tm_year+1900,
192 ptm->tm_hour, ptm->tm_min, ptm->tm_sec, ((
unsigned long long)timeValue%100000000));
201 if ((timeSyncTimeSkew < -100000000) ||
202 (timeSyncTimeSkew > 100000000)) {
203 printf(
"%d: PPS not in SYNC: ", i);
206 if ((timeSyncTimeSkew < -1000000) ||
207 (timeSyncTimeSkew > 1000000)) {
208 printf(
"%d PPS SYNCING: ", i);
211 printf(
"%d PPS in SYNC: ", i);
216 printf(
" ClockSkew : %13lld nano seconds \n", (
long long)(timeSyncTimeSkew));
228 uint64_t printTime=0;
240 #if defined(WIN32) || defined (WIN64) 243 struct sigaction newaction;
244 memset(&newaction, 0,
sizeof(newaction));
246 if (sigaction(SIGINT, &newaction, NULL) < 0) {
247 fprintf(stderr,
"Failed to register sigaction.\n");
252 printf(
"Running the PPS example.\n\n");
257 fprintf(stderr,
"NT_Init() failed: %s\n", errorBuffer);
266 printf(
"Opening info stream\n");
268 if ((status =
NT_InfoOpen(&hInfoStream,
"InfoPps")) != NT_SUCCESS) {
271 fprintf(stderr,
"NT_ConfigRead() failed: %s\n", errorBuffer);
274 printf(
"Info stream opened successfully\n");
278 if ((status =
NT_InfoRead(hInfoStream, &hInfo)) != 0) {
281 fprintf(stderr,
"NT_ConfigRead() failed: %s\n", errorBuffer);
287 printf(
"Found %d adapters\n", numAdapters);
289 for (i=0;i<numAdapters;i++) {
293 if ((status =
NT_InfoRead(hInfoStream, &hInfo)) != NT_SUCCESS) {
296 fprintf(stderr,
"Failed to read timesync info: %s\n", errorBuffer);
301 printf(
"Adapter %d:\n", i);
328 if ((status =
NT_InfoRead(hInfoStream, &hInfo)) != NT_SUCCESS) {
331 fprintf(stderr,
"NT_InfoRead() failed: %s\n", errorBuffer);
337 fprintf(stderr,
"Timestamp should be Native UNIX, please configure in the Ntservice.ini file.\n");
344 fprintf(stderr,
"No PPS Enabled adapters found! Please configure PPS in ntservice.ini\n");
352 fprintf(stderr,
"NT_EventOpen() failed: %s\n", errorBuffer);
360 fprintf(stderr,
"NT_ConfigOpen() failed: %s\n", errorBuffer);
365 for (i=0;i<numAdapters;i++) {
375 if ((status =
NT_ConfigWrite(hConfigStream, &configInfo)) != NT_SUCCESS) {
378 fprintf(stderr,
"NT_ConfigWrite() failed: %s\n", errorBuffer);
384 fprintf(stderr,
"PPS example starting in 5 seconds\n");
386 #if defined(__linux__) || defined(__FreeBSD__) 388 #elif defined(WIN32) || defined (WIN64) 392 #if defined(WIN32) || defined (WIN64) 394 if (system(
"cls")==0) {
399 if (system(
"clear")==0) {
403 printf(
"PPS Example running (press CTRL-C to exit)\n");
408 if (status == NT_STATUS_TIMEOUT) {
411 if (status != NT_SUCCESS) {
414 fprintf(stderr,
"NT_EventRead() failed: %s\n", errorBuffer);
430 if ((status =
NT_ConfigWrite(hConfigStream, &configInfo)) != NT_SUCCESS) {
433 fprintf(stderr,
"NT_ConfigWrite() failed: %s\n", errorBuffer);
440 if (helpTime != printTime) {
443 #if defined(WIN32) || defined (WIN64) 445 if (system(
"cls")==0) {
450 if (system(
"clear")==0) {
456 for (i=0;i<numAdapters;i++) {
461 if ((status =
NT_InfoRead(hInfoStream, &hInfo)) != NT_SUCCESS) {
464 fprintf(stderr,
"Failed to read timesync info: %s\n", errorBuffer);
471 printf(
"PPS signal lost on adapter %d\n", i);
477 printf(
"PPS signal found on adapter %d\n", i);
487 for (i=0;i<numAdapters;i++) {
494 if ((status =
NT_ConfigWrite(hConfigStream, &configInfo)) != NT_SUCCESS) {
497 fprintf(stderr,
"NT_ConfigWrite() failed: %s\n", errorBuffer);
507 fprintf(stderr,
"NT_ConfigClose() failed: %s\n", errorBuffer);
515 fprintf(stderr,
"NT_EventClose() failed: %s\n", errorBuffer);
520 if ((status =
NT_InfoClose(hInfoStream)) != NT_SUCCESS) {
523 fprintf(stderr,
"NT_InfoClose() failed: %s\n", errorBuffer);
527 printf(
"Streams closed\n");