/****************************************************************************/ /* Copyright (c) 2007,许继集团有限公司 */ /* All rights reserved. */ /* */ /* 模块描述: */ /** 时间处理模块,ST_TIMESTAMP ST_ENTRYTIME类型处理及转换 * @file timeutil.h */ /* */ /* 日期 作者 注释 */ /* 2007/09/13 ZYZ 创建文件,从老版copy */ /****************************************************************************/ #ifndef INC_ACSITIME_H_HEADER_INCLUDED_BE050203 #define INC_ACSITIME_H_HEADER_INCLUDED_BE050203 #include "ai_def.h" #ifdef __cplusplus extern "C" { #endif /** * 本函数完成系统当前时间的获取,UTime的品质属性这里不操作 * @param curtime 存放当前时间的Time变量 * @retval 无 */ ST_VOID get_system_curtime(ST_TIMESTAMP *curtime); /** * 根据时间精度TimeAccuracy 把毫秒数转换为UTCTime的Fraction. * 如果转换精度为0,则认为全精度24位,另外转换过程中精确度保证为0.1ms * @param milsecond 毫秒值 * @param time_precision 时间精度 * @retval ST_UINT32 UTCTime的Fraction */ ST_UINT32 convert_milsec_to_timefrac(ST_FLOAT milsecond, ST_INT32 time_precision); /** * 根据时间精度TimeAccuracy 把61850的时间Fraction转换为毫秒数Float32 * @param frac 61850的时间Fraction * @param time_precision 时间精度 * @retval ST_FLOAT 毫秒数 */ ST_FLOAT convert_timefrac_to_milsec(ST_UINT32 frac, ST_INT32 time_precision); /** * 计算两个timeStamp时间的间隔,以毫秒数返回结果 * @param curtime 当前时间 * @param destime 稍后时间 * @retval ST_FLOAT 毫秒数 */ ST_UINT32 calculate_timespan(ST_TIMESTAMP *curtime, ST_TIMESTAMP *destime); /** * 把一个时间间隔添加到一个绝对的时间标签上 * @param curtime 当前时间 * @param tmspan 时间差 * @retval 无 */ ST_VOID add_timespan_to_curtm(ST_TIMESTAMP *curtime, ST_UINT32 tmspan); /** * 获取当前的EntryTime时间 * @param entrytime 存放当前时间的ENTRYTIME变量 * @retval 无 */ ST_VOID get_current_entrytime(ST_ENTRYTIME *entrytime); /** * 把一个ST_TIMESTAMP类的时间转换为EntryTime时间 * @param timestamp timestamp时间 * @param entrytime entrytime时间 * @retval 无 */ ST_VOID convert_timestamp_to_entrytime(ST_TIMESTAMP *timestamp, ST_ENTRYTIME *entrytime); /** * 把一个EntryTime类的时间转换为ST_TIMESTAMP时间 * @param timestamp timestamp时间 * @param entrytime entrytime时间 * @retval 无 */ ST_VOID convert_entrytime_to_timestamp(ST_ENTRYTIME *entrytime, ST_TIMESTAMP *timestamp); #ifdef __cplusplus } #endif #endif /* end of 'already included' */