/****************************************************************************** 版权所有: 文件名称: history_file.h 文件版本: 01.01 创建作者: 创建日期: 2016-08-09 功能说明: 历史数据文件操作接口头文件 其它说明: 修改记录: */ #ifndef _HISTORY_FILE_H #define _HISTORY_FILE_H #define HF_HISTORY_DIR "/app/HISTORY/" #define HF_SOE_101_DIR "/app/HISTORY/SOE/" #define HF_CO_101_DIR "/app/HISTORY/CO/" #define HF_EXV_101_DIR "/app/HISTORY/EXV/" #define HF_FIXPT_101_DIR "/app/HISTORY/FIXPT/" #define HF_FRZ_101_DIR "/app/HISTORY/FRZ/" #define HF_FLOWREV_101_DIR "/app/HISTORY/FLOWREV/" #define HF_LOG_101_DIR "/app/HISTORY/ULOG/" #ifdef HISTORY_EVENT_EXT #define HF_SOECOS_101_DIR "/app/HISTORY/SOECOS/" #endif #ifdef FUN_SYNC_FILE #define HF_FLASH_WAVE_DIR "/app/PRIVATE/rcd/" #define HF_FLASH_PRIVATE_DIR "/app/PRIVATE/" #define HF_FLASH_WAVE_JD_DIR "/app/PRIVATE/xx/" #define HF_TMP_WAVE_JD_DIR "/tmp/xx/" #define JD_RCD_MAX_FILES 64 //64个波形 #endif #if defined DKY_GONGHUOJIAN || defined FUN_SYNC_FILE #define HF_WAVE_DIR "/tmp/COMTRADE/" #else #define HF_WAVE_DIR "/app/COMTRADE/" #endif #define HF_HISTORY_DB_INFO "/app/HIS_DB_INFO" #define LL_LINELOSS_DIR "/app/LINELOSS/" #define LL_FIXD_101_DIR "/app/LINELOSS/FIXD/" #define LL_RAND_101_DIR "/app/LINELOSS/RAND/" #define LL_FRZD_101_DIR "/app/LINELOSS/FRZD/" #define LL_SHARPD_101_DIR "/app/LINELOSS/SHARPD/" #define LL_MONTHD_101_DIR "/app/LINELOSS/MONTHD/" #define LL_EVENTD_101_DIR "/app/LINELOSS/EVENTD/" #define HF_SOE_FILENAME p_his_file[HS_FILE_SOE] //"soe.msg" #define HF_SOE_FILENAME_N 20 #define HF_YK_FILENAME p_his_file[HS_FILE_CO] //"co.msg" #define HF_YK_FILENAME_N 21 #ifdef HISTORY_EVENT_EXT #define HF_SOECOS_FILENAME p_his_file[HS_FILE_SOE_COS] //"soecos.msg" #define HF_SOECOS_FILENAME_N 23 #endif #define HF_LOG_FILENAME p_his_file[HS_FILE_LOG]//"ulog.msg" #define HF_LOG_FILENAME_N 175 #define HF_FIXPT_FILENAME p_his_file[HS_FILE_FIXPT]//"fixptXXXXXXXX.msg" #define HF_FIXPT_FILENAME_N 22 // #define HF_FIXPT_FILENAME_N_MAX 52 #define HF_FIXPT_FILENAME_LEN 17 //文件名长度 #define HF_EXV_FILENAME p_his_file[HS_FILE_EXV]///"exvXXXXXXXX.msg" #define HF_EXV_FILENAME_N 112 #define HF_EXV_FILENAME_N_MAX 142 #define HF_EXV_FILENAME_LEN 15 //文件名长度 #define HF_FRZ_FILENAME p_his_file[HS_FILE_FRZ]//"frzXXXXXXXX.msg" #define HF_FRZ_FILENAME_N 143 #define HF_FRZ_FILENAME_N_MAX 173 #define HF_FRZ_FILENAME_LEN 15 //文件名长度 #define HF_FLOWREV_FILENAME p_his_file[HS_FILE_FLOWREV]//"flowrev.msg" #define HF_FLOWREV_FILENAME_N 174 #define HF_FLOWREV_FILENAME_LEN 11 //文件名长度 #define HF_WAVE_FILENAME "_XXXXXXXX_XXXXXX_XXX.dat" #define HF_WAVE_FILENAME_N 0 #define HF_SOE_101_TMP "/tmp/soe_101" #define HF_YK_101_TMP "/tmp/yk_101" #define HF_MAX_MIN_101_TMP "/tmp/max_min_101" #define HF_TIMED_101_TMP "/tmp/timed_101" #define HF_FRZ_101_TMP "/tmp/frz_101" #define HF_FLOWREV_101_TMP "/tmp/flowrev_101" #define HF_ULOG_101_TMP "/tmp/ulog_101" #define HF_WAVE_TMP "/tmp/wave_cfg_dat" #define HF_DEFAULT_PATH "/app/data/" //录波文件名长度 #define HF_WAVE_FILE_LENGTH 28 //目录文件数据结构 struct dir_file_struct{ int file_name; //文件名称 unsigned int file_size; //文件大小 struct timespec file_time; //文件时间 char name[64]; //文件名称 }; //目录文件数据结构 struct dir_file_ext_struct{ char file_name[64]; //文件名称 unsigned int file_size; //文件大小 struct timespec file_time; //文件时间 }; /****************************************************************************** 函数名称: hf_get_dir_file 函数版本: 01.01 创建作者: 创建日期: 2016-08-09 函数说明: 获取目录文件. 参数说明: dir: 目录 p_file_cnt: 返回的文件个数 返回值: 如果获取成功,则得到*p_file_cnt 个struct dir_file_struct 的指针。使用完毕应当释放内存。 如果获取失败,则返回NULL. 修改记录: */ struct dir_file_struct * hf_get_dir_file(char *dir, int *p_file_cnt); /****************************************************************************** 函数名称: hf_get_file_part 函数版本: 01.01 创建作者: 创建日期: 2016-08-09 函数说明: 获取特定目录下某个文件节的信息 参数说明: dir: 目录 file_name: 文件名 part: 节名 part_len: 节长度 返回值: 如果获取成功,则得到节内容和节长度 如果获取失败,则返回NULL. 修改记录: */ char * hf_get_file_part(char *dir, int file_name, int part, int *part_len); /****************************************************************************** 函数名称: hf_get_file_inf 函数版本: 01.01 创建作者: 创建日期: 2016-08-09 函数说明: 获取目录文件. 参数说明: dir: 目录 file_name: 文件名 partnum: 节个数 返回值: 如果获取成功,则返回 文件长度、节个数 如果获取失败,则返回NULL. 修改记录: */ int hf_get_file_inf(char *dir, int file_name, int *partnum); /****************************************************************************** 函数名称: hf_get_dir_file_ext 函数版本: 01.01 创建作者: 创建日期: 2016-08-09 函数说明: 获取目录文件. 参数说明: dir: 目录 p_file_cnt: 返回的文件个数 tmpfile: 指定一个临时文件 返回值: 如果获取成功,则得到*p_file_cnt 个struct dir_file_ext_struct 的指针。使用完毕应当释放内存。 如果获取失败,则返回NULL. 修改记录: */ struct dir_file_ext_struct * hf_get_dir_file_ext(char *dir, int *p_file_cnt, char *tmpfile); char * hf_get_file_inf_n(char *file_name, uint32_t *id,int *filelenth); struct dir_file_struct * hf_get_dir_file_n(uint32_t id,char *dir, char cf,struct rtc_time_t *ts,struct rtc_time_t *te,int *p_file_cnt); int hf_init(void); int hf_exit(void); #endif