|
|
/****************************************************************************/
|
|
|
/* 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' */
|
|
|
|
|
|
|
|
|
|
|
|
|