chronaxis.core.temporal_clock
源码基线:8904c2f744951857659abd40aaa3535d57faf53c
1"""检查本批实际边界对应的计时增量,不构造另一条时间轴。23实际模式不传增量;固定/DBC模式由上游仅在所选驱动更新时传入一个周期,4其余有效期、EOF等边界传0。增量仅供检测器当前候选计时,不进入事件输出。5"""678def require_clock_advances(ticks, advances, record_clock, previous):9 """核对计时模式和有限批增量。1011 参数: ticks为已校验完整组、advances为非负整数tuple或None,previous为上次实际时间。12 返回: None。异常: TypeError/ValueError,不推进任何状态;首点不能虚构前序周期。13 """14 if type(record_clock) is not bool:15 raise TypeError('record_clock需要bool')16 if not record_clock:17 if advances is not None:18 raise ValueError('实际计时不能混入固定周期增量')19 return20 if type(advances) is not tuple or len(advances) != len(ticks):21 raise TypeError('记录计时需要与完整组等长的增量tuple')22 if any(type(value) is not int or not 0 <= value < (1 << 63) for value in advances):23 raise ValueError('计时增量需要非负int64整数')24 if previous is None and advances and advances[0] != 0:25 raise ValueError('首条记录不能增加尚不存在的间隔')26