Пример #1
0
Файл: bmc.c Проект: zhlinh/ptpd2
/**
 * 本地时钟即将进入PTP_MASTER状态
 */
void m1(const RunTimeOpts *rtOpts, PtpClock *ptpClock)
{
	/*Current data set update*/
	ptpClock->stepsRemoved = 0;
	
	clearTime(&ptpClock->offsetFromMaster);
	clearTime(&ptpClock->meanPathDelay);

	copyClockIdentity(ptpClock->parentPortIdentity.clockIdentity,
	       ptpClock->clockIdentity);

	ptpClock->parentPortIdentity.portNumber = ptpClock->portIdentity.portNumber;
	ptpClock->parentStats = DEFAULT_PARENTS_STATS;
	ptpClock->observedParentClockPhaseChangeRate = 0;
	ptpClock->observedParentOffsetScaledLogVariance = 0;
	copyClockIdentity(ptpClock->grandmasterIdentity,
			ptpClock->clockIdentity);
	ptpClock->grandmasterClockQuality.clockAccuracy = 
		ptpClock->clockQuality.clockAccuracy;
	ptpClock->grandmasterClockQuality.clockClass = 
		ptpClock->clockQuality.clockClass;
	ptpClock->grandmasterClockQuality.offsetScaledLogVariance = 
		ptpClock->clockQuality.offsetScaledLogVariance;
	ptpClock->grandmasterPriority1 = ptpClock->priority1;
	ptpClock->grandmasterPriority2 = ptpClock->priority2;
        ptpClock->logMinDelayReqInterval = rtOpts->logMinDelayReqInterval;

	/*Time Properties data set*/
	ptpClock->timePropertiesDS.currentUtcOffsetValid = rtOpts->timeProperties.currentUtcOffsetValid;
	ptpClock->timePropertiesDS.currentUtcOffset = rtOpts->timeProperties.currentUtcOffset;
	ptpClock->timePropertiesDS.timeTraceable = rtOpts->timeProperties.timeTraceable;
	ptpClock->timePropertiesDS.frequencyTraceable = rtOpts->timeProperties.frequencyTraceable;
	ptpClock->timePropertiesDS.ptpTimescale = rtOpts->timeProperties.ptpTimescale;
	ptpClock->timePropertiesDS.timeSource = rtOpts->timeProperties.timeSource;

	if(ptpClock->timePropertiesDS.ptpTimescale &&
	    (secondsToMidnight() < rtOpts->leapSecondNoticePeriod)) {
	    ptpClock->timePropertiesDS.leap59 = ptpClock->clockStatus.leapDelete;
	    ptpClock->timePropertiesDS.leap61 = ptpClock->clockStatus.leapInsert;
	} else {
	    ptpClock->timePropertiesDS.leap59 = FALSE;
	    ptpClock->timePropertiesDS.leap61 = FALSE;
	}

}
Пример #2
0
float
getPauseBeforeMidnight(Integer8 announceInterval) 
{
	return ((secondsToMidnight() <= getPauseAfterMidnight(announceInterval)) ?
		secondsToMidnight() : getPauseAfterMidnight(announceInterval));
}