diff --git a/src/fe/controllerUser.c b/src/fe/controllerUser.c index 732db0fdbc3a6c9bf796255f9e53ffbe280cd0df..536554b3e1ed2c4d744204b5051fd94c7abf9850 100644 --- a/src/fe/controllerUser.c +++ b/src/fe/controllerUser.c @@ -271,7 +271,7 @@ unsigned int getGpsTimeProc() { int status; unsigned int mytime; - timef = fopen("/proc/gps","r"); + timef = fopen("/sys/kernel/gpstime/time","r"); if(!timef) { printf("Cannot find GPS time \n"); return(0); @@ -676,8 +676,10 @@ usleep(1000); clock_gettime(CLOCK_MONOTONIC, &myTimer[0]); cycleTime = myTimer[0].tv_nsec / 1000; } while(cycleTime > 10); - timeSec = myTimer[0].tv_sec - 1; + // timeSec = myTimer[0].tv_sec - 1; timeSec = getGpsTimeProc(); + startGpsTime = timeSec; + pLocalEpics->epicsOutput.startgpstime = startGpsTime; printf("Triggered the ADC at %d and %d usec\n",timeSec,cycleTime); } else { printf("Can't run with I/O \n"); @@ -792,7 +794,11 @@ usleep(1000); /// - ---- If IOP, Increment GPS second timeSec ++; pLocalEpics->epicsOutput.timeDiag = timeSec; - if (cycle_gps_time == 0) startGpsTime = timeSec; + if (cycle_gps_time == 0) { + startGpsTime = timeSec; + pLocalEpics->epicsOutput.startgpstime = startGpsTime; + printf("Cycle gps = %d\n",startGpsTime); + } cycle_gps_time = timeSec; #endif } @@ -1021,7 +1027,10 @@ usleep(1000); // kk++; }while((ioMemData->iodata[mm][ioMemCntr].cycle != ioClock) && (adcWait < MAX_ADC_WAIT_SLAVE)); timeSec = ioMemData->iodata[mm][ioMemCntr].timeSec; - if (cycle_gps_time == 0) startGpsTime = timeSec; + if (cycle_gps_time == 0) { + startGpsTime = timeSec; + pLocalEpics->epicsOutput.startgpstime = startGpsTime; + } cycle_gps_time = timeSec; /// - --------- If data not ready in time, set error, release DAC channel reservation and exit the code.