📄 calmulenergy.h
字号:
#ifndef calmulenergy_h
#define calmulenergy_h
#define DEFINE_VC
typedef unsigned char BYTE;
typedef unsigned long int DWORD;
typedef int INT;
typedef long int LINT;
//费率定义
#define FSDN_ALL 0
#define FSDN_SHARP 1
#define FSDN_PEAK 2
#define FSDN_FLAT 3
#define FSDN_VALLAY 4
//象限定义
#define QUADRANT_I 0
#define QUADRANT_IV 1
#define QUADRANT_II 2
#define QUADRANT_III 3
//输出脉冲定义
#define PULSE_EP 0
#define PULSE_EQ 1
#ifdef DEFINE_VC
#define POWER_FORMAT_SCALE (14077*12165)
typedef double S64;
#define POWER_3N 33000
#define POWER_N 11000
#endif
typedef struct {
DWORD All;/*总电能*/
DWORD Sharp;/*尖峰电能*/
DWORD Peak;/*峰电能*/
DWORD Flat;/*平电能*/
DWORD Valley;/*谷电能*/
//以下本次没有要求作为扩充
//DWORD Rate5;/*费率5电能*/
//DWORD Rate6;/*费率6电能*/
//DWORD Rate7;/*费率7电能*/
//DWORD Rate8;/*费率8电能*/
} FSDN_TYPE;/*分时电能类型*/
typedef struct {
struct ENERGY_DATA_TYPE {
FSDN_TYPE Positive_Ep; /*正向有功电能*/
FSDN_TYPE Negative_Ep; /*反向有功电能*/
FSDN_TYPE QuadrantI_Eq; /*第I象限无功电能*/
FSDN_TYPE QuadrantIV_Eq; /*第IV象限无功电能*/
FSDN_TYPE QuadrantII_Eq; /*第II象限无功电能*/
FSDN_TYPE QuadrantIII_Eq;/*第III象限无功电能*/
//以下本次没有要求作为扩充
//FSDN_TYPE All_Eq; /*总无功电能*/
//FSDN_TYPE Positive_Eq; /*正向无功电能*/
//FSDN_TYPE Negative_Eq; /*反向无功电能*/
}Data; /*10*9*4=360字节*/
struct ENERGY_PARA_TYPE {
short Reserve[6];
} Para;/*96字节*/
}ENERGY_TYPE;/*电能类型*/
struct ENERGY_PRIVATE_PARA_TYPE {
WORD ConstEp;/*电表有功常数*/
WORD ConstEq;/*电表无功常数*/
WORD WireMode;/*接线方式:0三相四线、1三相三线*/
WORD Rate; //当前的费率
WORD PulseType;//脉冲口输出类型 0:有功 1:无功
WORD Kp;/*每个有功字有Kp个有功脉冲*/
WORD Kq;/*每个无功字有Kp个无功脉冲*/
};
struct ENERGY_PRIVATE_DATA_TYPE {
BYTE Ep; /*有功电能脉冲,单位:kwh/有功脉冲常数*/
BYTE Eq; /*无功电能脉冲,单位:kvarh/无功脉冲常数*/
BYTE FastEp;/*有功快速电能脉冲,单位:kwh/有功脉冲常数/10*/
BYTE FastEq;/*无功快速电能脉冲,单位:kvarh/无功脉冲常数/10*/
BYTE Quadrant;/*象限,0I象限,1IV象限,2II象限,3III象限。等效意义:bit7:有功方向0正1负;bit6:无功方向0正1负*/
BYTE PieceEp;
BYTE PieceEq;
}; //
class CalMulEnergy
{
public:
ENERGY_PRIVATE_PARA_TYPE PrivatePara;
ENERGY_PRIVATE_DATA_TYPE PrivateData;
S64 lp,lq;
public:
void GetRate(void);//取得当前的费率
public:
ENERGY_TYPE EnergyData;
public:
CalMulEnergy(void);
~CalMulEnergy(void){;};
void CalcuPulse(long p,long q);
void PulseOut(short n);//输出 n个脉冲
void Init(void);
void Exec(void);
void Save(void);
void Transfer(void);
void Clear(void);
void Freeze(void);
};
extern CalMulEnergy MulEnergy;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -