lnk commit front code
This commit is contained in:
382
include/ied.h
Normal file
382
include/ied.h
Normal file
@@ -0,0 +1,382 @@
|
||||
/**
|
||||
* @file: $RCSfile: ied.h,v $
|
||||
* @brief: $<24>豸<EFBFBD><E8B1B8><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
*
|
||||
* @version: $Revision: 1.1 $
|
||||
* @date: $Date: 2018/11/24 06:54:49 $
|
||||
* @author: $Author: lizhongming $
|
||||
* @state: $State: Exp $
|
||||
*
|
||||
* @latest: $Id: ied.h,v 1.1 2018/11/24 06:54:49 lizhongming Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _IED_STRUCT_H
|
||||
#define _IED_STRUCT_H
|
||||
|
||||
#include "IEC60870DEF.h"
|
||||
//#include "drvcommon.h"
|
||||
typedef byte_t channel_size_type;
|
||||
|
||||
#ifdef _OS_WIN32_
|
||||
#pragma pack(push,1)
|
||||
#endif
|
||||
|
||||
|
||||
#define PRV_ANA_EXTENSION (1) //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define PRV_DIGIT_EXTENSION (3) //ң<><D2A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define PRV_EVENT_EXTENSION (3) //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define PRV_PULSE_EXTENSION (2) //ң<><D2A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//-----ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>չ---------------//
|
||||
#define ANA_EXTENSION_ALARM (0) //<2F>澯:<3A>澯<EFBFBD>ȼ<EFBFBD>;<3B>澯<EFBFBD><E6BEAF><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
|
||||
|
||||
|
||||
typedef struct analog_t analog_t;
|
||||
struct analog_t {
|
||||
byte_t type; /**< <20><>ѹ/<2F><><EFBFBD><EFBFBD>/<2F>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>/<2F><EFBFBD><DEB9><EFBFBD><EFBFBD><EFBFBD>/Ƶ<><C6B5>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> */
|
||||
float initval; /**< ȱʡֵ */
|
||||
float minimum; /**< ȡֵ<C8A1><D6B5><EFBFBD><EFBFBD> */
|
||||
float maximum; /**< ȡֵ<C8A1><D6B5><EFBFBD><EFBFBD> */
|
||||
float step; /**< <20><><EFBFBD><EFBFBD> */
|
||||
byte_t integral; /**< precision ( n , m ) - n */
|
||||
byte_t decimal; /**< precision ( n , m ) - m */
|
||||
float offset; /**< ʵ<><CAB5>ֵת<D6B5><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
float factor; /**< ʵ<><CAB5>ֵת<D6B5><D7AA>ϵ<EFBFBD><CFB5> */
|
||||
float threshold; /**< <20><><EFBFBD><EFBFBD>ֵ */
|
||||
float smooth; /**< ƽ<><C6BD>ϵ<EFBFBD><CFB5> */
|
||||
float lower; /**< <20>澯<EFBFBD><E6BEAF><EFBFBD><EFBFBD>ֵ */
|
||||
float higher; /**< <20>澯<EFBFBD><E6BEAF><EFBFBD><EFBFBD>ֵ */
|
||||
float lowest; /**< <20><><EFBFBD><EFBFBD><EFBFBD>澯ֵ */
|
||||
float highest; /**< <20><><EFBFBD><EFBFBD><EFBFBD>澯ֵ */
|
||||
float blur; /**< <20><>ֵģ<D6B5><C4A3>ϵ<EFBFBD><CFB5> */
|
||||
char dimension[SHORTNAME]; /**< <20><><EFBFBD><EFBFBD>ASCII<49><49>ʽ(A/V/kV/kvar/kW/MW etc.) */
|
||||
void *ext[PRV_ANA_EXTENSION]; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ */
|
||||
}ALIGNPACKED;
|
||||
|
||||
|
||||
typedef struct ana_extention_t ana_extention_t;
|
||||
struct ana_extention_t{
|
||||
int alarm_level;
|
||||
int save_flag;
|
||||
char *high_alarm_sound;
|
||||
char *low_alarm_sound;
|
||||
char *recovery_alarm_sound;
|
||||
};
|
||||
|
||||
typedef struct digit_t digit_t;
|
||||
#define DGT_TYP_UNDEF 0x00 /**< δ<><CEB4><EFBFBD><EFBFBD> */
|
||||
#define DGT_TYP_SAMPLING 0x01 /**< <20><><EFBFBD><EFBFBD> */
|
||||
#define DGT_TYP_EVENT 0x02 /**< <20>¼<EFBFBD> */
|
||||
#define DGT_TYP_ALARM 0x03 /**< <20>澯 */
|
||||
#define DGT_TYP_OPERATE 0x04 /**< <20><><EFBFBD><EFBFBD> */
|
||||
#define DGT_TYP_SYSTEM 0x05 /**< ϵͳ */
|
||||
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
struct digit_t {
|
||||
byte_t type; /**< <20><><EFBFBD><EFBFBD>/<2F>¼<EFBFBD>/<2F>澯/<2F><><EFBFBD><EFBFBD>/ϵͳ */
|
||||
byte_t initval; /**< default zero value(0 or 1) */
|
||||
byte_t level; /**< level */
|
||||
byte_t snd_timer; /**< sound play timer (s) */
|
||||
byte_t rst_timer; /**< auto restore timer (s) */
|
||||
uint16_t act_lim; /**< (0 ==> 1)<29><><EFBFBD><EFBFBD><EFBFBD>澯<EFBFBD><E6BEAF><EFBFBD><EFBFBD> */
|
||||
uint16_t rst_lim; /**< (1 ==> 0)<29><><EFBFBD><EFBFBD><EFBFBD>澯<EFBFBD><E6BEAF><EFBFBD><EFBFBD> */
|
||||
uint16_t act_num; /**< (0 ==> 1)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>) */
|
||||
uint16_t rst_num; /**< (1 ==> 0)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>) */
|
||||
//<2F>ڶ<EFBFBD><DAB6><EFBFBD>ȥ<EFBFBD><C8A5>
|
||||
//char on[SHORTNAME]; /**< 0==>1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ASCII<49><49>ʽ) */
|
||||
//char off[SHORTNAME]; /**< 1==>0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ASCII<49><49>ʽ) */
|
||||
void *ext[PRV_DIGIT_EXTENSION]; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ */
|
||||
}ALIGNPACKED;
|
||||
|
||||
|
||||
#define DIGIT_STATE_0_DESCRIBE (0)
|
||||
#define DIGIT_STATE_1_DESCRIBE (1)
|
||||
#define DIGIT_STATE_2_DESCRIBE (2)
|
||||
#define DIGIT_STATE_3_DESCRIBE (3)
|
||||
|
||||
#define DIGIT_OPEN_SOUND (0)
|
||||
#define DIGIT_CLOSE_SOUND (1)
|
||||
#define DIGIT_ALARM_SOUND (2)
|
||||
|
||||
|
||||
typedef struct state_describe_extention_t state_describe_extention_t;
|
||||
struct state_describe_extention_t{
|
||||
char *state_describe[4]; /**< ״̬0<CCAC><30>1<EFBFBD><31>2<EFBFBD><32>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
};
|
||||
typedef struct sound_file_name_extention_t sound_file_name_extention_t;
|
||||
|
||||
struct sound_file_name_extention_t{
|
||||
char *sound_file_name[3]; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹ʱ<C2B9><CAB1><EFBFBD><EFBFBD><EFBFBD> */
|
||||
};
|
||||
|
||||
typedef struct epfi_addt_extension_t epfi_addt_extension_t;
|
||||
struct epfi_addt_extension_t {
|
||||
uint32_t fun;
|
||||
uint32_t inf;
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct pulse_t pulse_t;
|
||||
/** Integrated totals private attr */
|
||||
#define PLS_TYP_UNDEF 0x00 /**< δ<><CEB4><EFBFBD><EFBFBD> */
|
||||
#define PLS_TYP_PLUS_POWER_HV 0x01 /**< <20><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD> */
|
||||
#define PLS_TYP_PLUS_POWER_NO 0x02 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define PLS_TYP_NEGATIVE_POWER_HV 0x03 /**< <20><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD> */
|
||||
#define PLS_TYP_NEGATIVE_POWER_NO 0x04 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
struct pulse_t {
|
||||
byte_t type; /**< <20><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint32_t save_flag; /**< <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD> */
|
||||
uint32_t initval; /**< default value */
|
||||
uint32_t minimum; /**< minimum value */
|
||||
uint32_t maximum; /**< maximum value */
|
||||
uint32_t step; /**< <20><><EFBFBD><EFBFBD> */
|
||||
//changed by zhancg 2017-04-05 <20><>ϵ<EFBFBD><CFB5>
|
||||
// uint32_t offset; /**< ʵ<><CAB5>ֵת<D6B5><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
// uint32_t factor; /**< ʵ<><CAB5>ֵת<D6B5><D7AA>ϵ<EFBFBD><CFB5> */
|
||||
// uint32_t threshold; /**< <20><><EFBFBD><EFBFBD>ֵ */
|
||||
// uint32_t smooth; /**< ƽ<><C6BD>ϵ<EFBFBD><CFB5> */
|
||||
float offset; /**< ʵ<><CAB5>ֵת<D6B5><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
float factor; /**< ʵ<><CAB5>ֵת<D6B5><D7AA>ϵ<EFBFBD><CFB5> */
|
||||
float threshold; /**< <20><><EFBFBD><EFBFBD>ֵ */
|
||||
float smooth; /**< ƽ<><C6BD>ϵ<EFBFBD><CFB5> */
|
||||
char dimension[SHORTNAME]; /**< <20><><EFBFBD><EFBFBD>ASCII<49><49>ʽ(kvar/kW/MW etc.) */
|
||||
void *ext[PRV_PULSE_EXTENSION];
|
||||
}ALIGNPACKED;
|
||||
typedef struct pluse_stage_limits_extention_t pluse_stage_limits_extention_t;
|
||||
struct pluse_stage_limits_extention_t{
|
||||
uint32_t limits[3]; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ֵ */
|
||||
};
|
||||
typedef struct pluse_stage_const_extention_t pluse_stage_const_extention_t;
|
||||
struct pluse_stage_const_extention_t{
|
||||
char* stage[8]; /**< <20><>ʱ<EFBFBD><CAB1>1,<2C><>ʱ<EFBFBD><CAB1>2,<2C><>ʱ<EFBFBD><CAB1>3,<2C><>ʱ<EFBFBD><CAB1>4,<2C><>ʱ<EFBFBD><CAB1>1,<2C><>ʱ<EFBFBD><CAB1>2,<2C><>ʱ<EFBFBD><CAB1>3,<2C><>ʱ<EFBFBD><CAB1>4 */
|
||||
};
|
||||
|
||||
//
|
||||
typedef struct command_t command_t;
|
||||
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ṹ */
|
||||
struct command_t {
|
||||
ticks_t ticks; /**< Ticks when command generated */
|
||||
apr_time_t tmlimit; /**< <20><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
|
||||
byte_t state; /**< ACTIVE<56><45>FINISH or TIMEOUT */
|
||||
byte_t channel; /**< command channel no */
|
||||
byte_t flag; /**< General<61><6C>System or Special */
|
||||
byte_t typ; /**< Command TYPE(IEC60870-5-101) */
|
||||
uint32_t ied; /**< Controlled IED id */
|
||||
uint32_t group; /**< Controlled group id */
|
||||
uint32_t dot; /**< Controlled element */
|
||||
byte_t cot; /**< Cause of transmission */
|
||||
byte_t data[255]; /**< Command data */
|
||||
}ALIGNPACKED;
|
||||
//
|
||||
|
||||
|
||||
/** status_t code definiens */
|
||||
#define STATUS_NORMAL 0 /**< <20><><EFBFBD><EFBFBD> */
|
||||
#define STATUS_NOINIT 1 /**< δ<><CEB4>ʼ<EFBFBD><CABC> */
|
||||
#define STATUS_OVERTIME 2 /**< ͨ<>ų<EFBFBD>ʱ */
|
||||
#define STATUS_BREAKOFF 3 /**< ͨ<><CDA8><EFBFBD>ж<EFBFBD> */
|
||||
#define STATUS_BLOCKED 4 /**< <20><><EFBFBD><EFBFBD> */
|
||||
#define STATUS_TESTING 5 /**< <20><><EFBFBD><EFBFBD> */
|
||||
#define STATUS_NOTDEF 6 /**< δ<><CEB4><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬û<CCAC><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
||||
|
||||
typedef uint16_t status_t; /**< <20>豸<EFBFBD><E8B1B8>ͨ<EFBFBD>Žڵ<C5BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */
|
||||
|
||||
typedef struct alias_t alias_t;
|
||||
/** <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD>صı<D8B5><C4B1><EFBFBD><EFBFBD>ṹ */
|
||||
struct alias_t { /**< <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD>صı<D8B5><C4B1><EFBFBD><EFBFBD>ṹ */
|
||||
uint32_t id; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ַ */
|
||||
uint32_t parent; /**< <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>IED */
|
||||
uint32_t group; /**< <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>IED<45>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint32_t dot; /**< <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>IED<45>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> */
|
||||
value_t* value; /**< <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD> */
|
||||
};
|
||||
|
||||
typedef struct ied_t ied_t;
|
||||
typedef struct group_t group_t;
|
||||
typedef struct element_t element_t;
|
||||
|
||||
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢԪ<CFA2>صĽṹ */
|
||||
struct element_t {
|
||||
uint32_t id; /**< Identification, Information Address */
|
||||
uint32_t flags; /**< flags define */
|
||||
byte_t type; /**< IEC60870-5-101 TYP.(IEC60870DEF.h) */
|
||||
byte_t code; /**< Data code type.(BIN/ASCII/BCD/etc.) */
|
||||
uint32_t parent; /**< <20><><EFBFBD><EFBFBD><EFBFBD>豸 */
|
||||
uint32_t group; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint32_t dot; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint16_t size; /**< <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>(<28><><EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ) */
|
||||
char name[LONGNAME]; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
char *aliasname; /**< <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>Ӧ<EFBFBD><D3A6>Ӣ<EFBFBD><D3A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ++EPFI++ */
|
||||
|
||||
void *owner; /**< ˽<><CBBD><EFBFBD><EFBFBD><EFBFBD>Խṹ(analog_t/digit_t/..../etc.) */
|
||||
void *script; /**< <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ */
|
||||
|
||||
/** Runtime generate */
|
||||
value_t value; /**< <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʵʱ<CAB5><CAB1><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD> */
|
||||
ticks_t last; /**< <20><><EFBFBD><EFBFBD><EFBFBD>仯ʱ<E4BBAF><CAB1> */
|
||||
uint32_t state; /**< <20><><EFBFBD><EFBFBD>״̬ */
|
||||
byte_t funtype; /**< <20>̳<EFBFBD><CCB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint16_t index; /**< <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint16_t n_alias_add_1; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С<EFBFBD><D0A1>Ԥ<EFBFBD><D4A4>1<EFBFBD><31><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD> */
|
||||
uint16_t n_alias; /**< <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD> */
|
||||
alias_t* alias; /**< <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint16_t alias_pos; /**< <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD>ǰλ<C7B0><CEBB> */
|
||||
uint32_t offset; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
group_t *grp; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
ied_t *ied; /**< <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
|
||||
|
||||
/* Extend property */
|
||||
void *sys_ext; /**< <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>ϵͳ<CFB5><CDB3>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,<2C>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5> */
|
||||
void *app_ext; /**< <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,<2C><>Ӧ<EFBFBD>ÿ<EFBFBD>ʵ<EFBFBD><CAB5> */
|
||||
void *usr_ext; /**< <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,<2C><>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ʵ<EFBFBD><CAB5> */
|
||||
};
|
||||
|
||||
/** group_t->type definiens */
|
||||
#define GRP_CUSTOM 0 /**< User custom type */
|
||||
#define GRP_ANALOGUE 1 /**< Analogue type */
|
||||
#define GRP_DIGITAL 2 /**< Digital type */
|
||||
#define GRP_PULSE 3 /**< Pulse type */
|
||||
#define GRP_CONTROL 4 /**< Control type */
|
||||
#define GRP_SYSTEM 5 /**< System operation type */
|
||||
#define GRP_EVENT 6 /**< Protect event type */
|
||||
#define GRP_ALARM 7 /**< Alarm type */
|
||||
#define GRP_SETTING 8 /**< Fixed value type */
|
||||
#define GRP_STATUS 9 /**< State of device */
|
||||
#define GRP_VDI 10 /**< <20><>ѹ<EFBFBD><D1B9> type */
|
||||
#define GRP_STEPPOS 11 /**< Step position type */
|
||||
#define GRP_COMBO 12 /**< combo/compute type */
|
||||
#define GRP_SIMANA 13 /**< ģ<><C4A3><EFBFBD><EFBFBD> */
|
||||
#define GRP_SETAREA 14 /**< <20><>ֵ<EFBFBD><D6B5> */
|
||||
#define GRP_ACCANA 15 /**< ¼<><C2BC>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> */
|
||||
#define GRP_ACCDGT 16 /**< ¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
#define GRP_SETPOINT 18 /**< Set point type for 101,104 protocol used only */
|
||||
#define GRP_STEPCONTROL 19 /**< <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ */
|
||||
struct group_t {
|
||||
uint32_t id; /**< Identification, Commond Address of Set */
|
||||
uint32_t flags; /**< Flags definiens */
|
||||
byte_t type; /**< Analogue/Digit/Control/Event/etc. */
|
||||
char name[LONGNAME]; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint16_t maxelems; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>elements<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ */
|
||||
element_t *elements; /**< <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
// runtime generate
|
||||
uint16_t count; /**< ʵ<>ʰ<EFBFBD><CAB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>Ŀ */
|
||||
uint16_t index; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IED->groups<70><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD> */
|
||||
value_t value; /**< <20><><EFBFBD><EFBFBD><EFBFBD>黺<EFBFBD><E9BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>elements<74><73>ʵʱֵ */
|
||||
ied_t *ied; /**< <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
|
||||
apr_hash_t *htdots; /**< <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3> */
|
||||
|
||||
/* Extend property */
|
||||
void *sys_ext; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,<2C>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5> */
|
||||
void *app_ext; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,<2C><>Ӧ<EFBFBD>ÿ<EFBFBD>ʵ<EFBFBD><CAB5> */
|
||||
void *usr_ext; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,<2C><>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ʵ<EFBFBD><CAB5> */
|
||||
};
|
||||
|
||||
//<!-- IEDConfig id,name,flags,type,chncount,cpucount,addrsinfo,cpusinfo,station,frequency,delay,count
|
||||
// ^^^^
|
||||
/** IED type definiens */
|
||||
#define IED_TYPE_REAL (0)
|
||||
#define IED_TYPE_REMOTE (1)
|
||||
#define IED_TYPE_SYSTEM (2)
|
||||
#define IED_TYPE_VIRTUAL (3)
|
||||
#define IED_TYPE_EPFI (4) /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
|
||||
#define IED_FLAG_BLOCKED 0x00000004 /**< <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱʡ<C8B1><CAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
|
||||
#define CHANBEL_TYPE_UNKNOWN (0)
|
||||
#define CHANNEL_TYPE_IPV4 (1)
|
||||
#define CHANNEL_TYPE_IPV6 (2) /**< δ<><CEB4> */
|
||||
#define CHANNEL_TYPE_SERIAL (3) /**< <20><><EFBFBD>ں<EFBFBD> */
|
||||
|
||||
#define CHANNEL_TYPE_USER_DEFINED (254) /**< <20>û<EFBFBD><C3BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
|
||||
typedef struct channel_t channel_t;
|
||||
struct channel_t {
|
||||
uint32_t master; /**< <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>ͨ<EFBFBD><CDA8>(Node ID) */
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2008-08-16<31><36><EFBFBD><EFBFBD>,֧<><D6A7>
|
||||
int channel_type; /**< ͨ<><CDA8><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD> */
|
||||
char addr_str[LONGNAME]; /**< ͨ<><CDA8><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʾ */
|
||||
|
||||
uint32_t addr; /**< ͨ<>Ŷ˿ڵ<CBBF>ַ */
|
||||
uint16_t port; /**< ip<69><70>ַ<EFBFBD>Ķ˿<C4B6> */
|
||||
|
||||
uint32_t status; /**< ͨ<>Ŷ˿<C5B6>״̬ */
|
||||
ticks_t last_ticks; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
|
||||
ticks_t last_send_ticks; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯʱ<D1AF><CAB1> */
|
||||
void *connect; /**< ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>Ӿ<EFBFBD><D3BE><EFBFBD> */
|
||||
ied_t *ied; /**< <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
|
||||
int ied_id; /**< <20><><EFBFBD><EFBFBD><EFBFBD>豸id */
|
||||
};
|
||||
|
||||
typedef struct cpuinfo_t cpuinfo_t;
|
||||
struct cpuinfo_t {
|
||||
byte_t addr; /**< CPU<50><55>ַ */
|
||||
byte_t status; /**< CPU״̬ */
|
||||
byte_t templ; /**< CPUģ<55><C4A3> */
|
||||
char name[LONGNAME]; /**< CPU<50><55><EFBFBD><EFBFBD> */
|
||||
ticks_t last_gi; /**< <20><><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD>ѯʱ<D1AF><CAB1> */
|
||||
ticks_t last_gi_send; /**< <20><><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
|
||||
ticks_t next_gi_send; /**< <20>´<EFBFBD><C2B4>ܲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
|
||||
ticks_t last_ticks; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
|
||||
ticks_t last_send_ticks; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯʱ<D1AF><CAB1> */
|
||||
};
|
||||
|
||||
|
||||
|
||||
/** IED struct definiens */
|
||||
struct ied_t {
|
||||
uint32_t id; /**< Primy key ( = 0 ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>IED ) */
|
||||
uint32_t flags; /**< Flags define */
|
||||
byte_t type; /**< Type define */
|
||||
byte_t chncount; /**< <20>豸ͨ<E8B1B8>Ŷ˿<C5B6><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱʡ=1<><31> */
|
||||
channel_t *channel; /**< <20>豸ͨ<E8B1B8>Ŷ˿<C5B6><CBBF><EFBFBD><EFBFBD><EFBFBD> */
|
||||
byte_t cpucount; /**< CPU<50><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱʡ=1<><31> */
|
||||
cpuinfo_t *cpuinfo; /**< CPU<50><55>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD> */
|
||||
char name[LONGNAME]; /**< <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
|
||||
uint32_t station; /**< <20><><EFBFBD><EFBFBD>վ<EFBFBD><D5BE><ֱ<><D6B1>Ŀ¼ID> */
|
||||
uint32_t node; /**< <20><><EFBFBD><EFBFBD>ͨ<EFBFBD>Žڵ<C5BD><DAB5><EFBFBD> */
|
||||
uint16_t frequency; /**< ͨ<><CDA8>ɨ<EFBFBD><C9A8>Ƶ<EFBFBD><C6B5> */
|
||||
uint32_t delay; /**< ͨ<><CDA8><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ʱ(ms) */
|
||||
uint16_t count; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ */
|
||||
group_t *groups; /**< <20><><EFBFBD><EFBFBD><EFBFBD>鶨<EFBFBD><E9B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
apr_hash_t *htgroups; /**< <20><><EFBFBD><EFBFBD><EFBFBD>鶨<EFBFBD><E9B6A8><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint32_t systoken_st; /**< ϵͳ<CFB5><CDB3><EFBFBD>Ƶ<EFBFBD>״̬ */
|
||||
|
||||
/* Runtime generate */
|
||||
uint16_t index; /**< <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD> */
|
||||
status_t status; /**< <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬ */
|
||||
ticks_t last_ticks; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
|
||||
ticks_t last_gi; /**< <20><><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD>ѯʱ<D1AF><CAB1> */
|
||||
|
||||
/* Extend property */
|
||||
void *sys_ext; /**< <20>豸<EFBFBD><E8B1B8>ϵͳ<CFB5><CDB3>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ⶨ<EFBFBD><E2B6A8> */
|
||||
void *app_ext; /**< <20>豸<EFBFBD><E8B1B8>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,Ӧ<>ÿⶨ<C3BF><E2B6A8> */
|
||||
void *usr_ext; /**< <20>豸<EFBFBD><E8B1B8><EFBFBD>û<EFBFBD><C3BB><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>,Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
};
|
||||
|
||||
#ifdef _OS_WIN32_
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _IED_STRUCT_H */
|
||||
|
||||
Reference in New Issue
Block a user