You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

163 lines
5.4 KiB
C

1 year ago
/****************************************************************************
** File name : HTIEC61850Macros.h
** Description : IEC 61850 Macros define
** Create date : 2019.09.01
** Auther by : Liuyx
** Version info : V1.0.01
** Copyright (C) 2002-2019 xi'an huatek, Inc Co., Ltd
** Update record:
** DATE AUTHER DESC
** -------------------------------------------------------------------------
** 2019.09.01 Liuyx first build
****************************************************************************/
#ifndef __HT_IEC_61850_MACROS_H
#define __HT_IEC_61850_MACROS_H
#include "HTGlobal.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>comtrade<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>ĺ<EFBFBD>
* <EFBFBD>ڴ˲<EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>16<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>64<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>64<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
************************************************************************************/
#define CMTR_REV_YEAR_LENGTH 4
#define CMTR_STRING_MAX_LENGTH 64
#define CMTR_ANALOG_MAX_COUNT 255
#define CMTR_DIGIT_MAX_COUNT 255
#define CMTR_SMPRATE_MAX_COUNT 255
#ifdef _WIN32
#define f_open _open
#define f_read _read
#define f_write _write
#define f_close _close
#else
#define f_open open
#define f_read read
#define f_write write
#define f_close close
#endif
/************************************************************************************
* ht_cmtr_openrb/ht_cmtr_openwb/ht_cmtr_openab/ht_cmtr_close
* - <EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>д<EFBFBD>ýӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>recv\send<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r\w<EFBFBD><EFBFBD>
* @pfd: <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>socket<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>
* @str: <EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ip<EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><EFBFBD>ڵ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>߹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
************************************************************************************/
#define ht_cmtr_openrb(str) (f_open((str), O_RDONLY, S_IWRITE | S_IREAD))
#define ht_cmtr_openwb(str) (f_open((str), O_CREAT | O_RDWR, S_IWRITE | S_IREAD))
#define ht_cmtr_openab(str) (f_open((str), O_CREAT | O_APPEND | O_RDWR, S_IWRITE | S_IREAD))
#define ht_cmtr_close(pfd) (f_close(pfd))
//<2F>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ߵ<EFBFBD>λת<CEBB><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//#define ENDIAN_CONIVER
// <20><EFBFBD><EABFAA> <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>д
#define CMTR_IOFILE
//#define CMTR_IOBUFFER
// <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>txt<78><74><EFBFBD>ı<EFBFBD><C4B1>ļ<EFBFBD>
//#define CMTR_OUT_TXTFILE
// <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DB_OPT_INSERT 1
#define DB_OPT_UPDATE 2
#define DB_OPT_DELETE 3
/************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>Ķ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>д<EFBFBD>ýӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>
* Ϊ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>recv\send<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r\w<EFBFBD>ȡ<EFBFBD>
*
* ht_read_cmtr_bufn/ht_read_cmtr_bufn - cmtr<EFBFBD>Ķ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @pfd: <EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>fd<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>buffer<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>
* @buf: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
* @count: <EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>
*
************************************************************************************/
#if defined(CMTR_IOFILE)
//typedef int _my_cmtr_ioptr;
#define ht_read_cmtr_bufn(pfd, buf, count) \
do { \
if (f_read((pfd), (buf), (count)) <= 0) { \
(pfd) = -1; \
} \
} while (0);
#define ht_write_cmtr_bufn(pfd, buf, count) \
do { \
if (f_write((pfd), (buf), (count)) <= 0) { \
(pfd) = -1; \
} \
} while (0);
#define ht_check_cmtr_ptr(pfd) \
(((pfd) != -1) && ((pfd) != 0))
#elif defined(CMTR_IOBUFFER)
//typedef u8* _my_cmtr_ioptr;
//typedef unsigned char* _my_cmtr_ioptr;
#define ht_read_cmtr_bufn(pfd, buf, count) \
do { \
memcpy((buf), (pfd), (count)); \
(pfd) += (count); \
} while (0);
#define ht_write_cmtr_bufn(pfd, buf, count) \
do { \
memcpy((pfd), (buf), (count)); \
(pfd) += (count); \
} while (0);
#define ht_check_cmtr_ptr(pfd) \
(((pfd) != -1) && ((pfd) != 0))
#endif
/************************************************************************************
* ht_read_cmtr_data/ht_write_cmtr_data - <EFBFBD><EFBFBD>ȡ/д<EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>cmtr<EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
* @src: <EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>Ϊbuffer<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>
* @data: <EFBFBD><EFBFBD>ȡ/д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>
* @count: <EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ȡ/д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @counter: <EFBFBD><EFBFBD>ȡ/д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
************************************************************************************/
#define ht_read_cmtr_data(src, data, count, counter) \
do { \
if (ht_check_cmtr_ptr(src)) { \
ht_read_cmtr_bufn((src), (data), (count)); \
(counter) += (count); \
} \
} while (0);
#define ht_write_cmtr_data(src, data, count, counter) \
do { \
if (ht_check_cmtr_ptr(src)) { \
ht_write_cmtr_bufn((src), (data), (count)); \
(counter) += (count); \
} \
} while (0);
#ifdef __cplusplus
}
#endif
#endif /* end __HT_IEC_61850_MACROS_H */