📄 global.h
字号:
CheckYxRec[i].ReInitDataProc( DATA_TYPE_YX);
CheckYxStatus[i] = TRUE;
IsNeedManClearYx[i] = FALSE;
yxLockStatus[i] = FALSE;
}
for(i=0;i<LOCKVQC_YCNUM;i++) {
CheckYcRec[i].ReInitDataProc( DATA_TYPE_YC);
CheckYcValue[i] = 0;
CheckYcType[i] = IS_MORE;
ycLockStatus[i] = FALSE;
}
};
void ClearAllManUnlockProc(){
BYTE i;
for (i=0;i<CheckBhNum;i++){
bhLockStatus[i] = FALSE;
CheckBhRec[i].ClearBhStatus();
}
for (i=0;i<CheckYxNum;i++)
if (IsNeedManClearYx[i]) yxLockStatus[i] = FALSE;
};
void SetBhStatus(int rtuNo, int dotNo){
for (BYTE i=0;i<CheckBhNum;i++)
CheckBhRec[i].SetBhStatus(rtuNo, dotNo);
};
UINT GetLockStatusProc(){
BYTE i;
UINT ff=0;
for (i=0;i<CheckBhNum;i++){
bhLockStatus[i] = FALSE;
if (CheckBhRec[i].GetBhStatus()) {
bhLockStatus[i] = TRUE;
ff |= LOCK_BH;
}
}
for (i=0;i<CheckYxNum;i++){
if (!IsNeedManClearYx[i]) yxLockStatus[i] = FALSE;
if (CheckYxRec[i].GetStatus()==CheckYxStatus[i])
yxLockStatus[i] = TRUE;
if (yxLockStatus[i]) ff |= LOCK_YX;
}
for (i=0;i<(int)CheckYcNum;i++){
ycLockStatus[i] = FALSE;
if (CheckYcType[i]==IS_MORE) {
if (CheckYcRec[i].GetYcValue() > CheckYcValue[i]){
ycLockStatus[i] = TRUE;
ff |= LOCK_YC;
}
}
else if (CheckYcType[i]==IS_LESS) {
if (CheckYcRec[i].GetYcValue() < CheckYcValue[i]){
ycLockStatus[i] = TRUE;
ff |= LOCK_YC;
}
}
else if (CheckYcType[i]==IS_EQUAL) {
if ((int)(CheckYcRec[i].GetYcValue()+0.5) == (int)(CheckYcValue[i]+0.5)){
ycLockStatus[i] = TRUE;
ff |= LOCK_YC;
}
}
else if (CheckYcType[i]==IS_MORE_OR_EQUAL) {
if ((int)(CheckYcRec[i].GetYcValue()+0.5) >= (int)(CheckYcValue[i]+0.5)){
ycLockStatus[i] = TRUE;
ff |= LOCK_YC;
}
}
else if (CheckYcType[i]==IS_LESS_OR_EQUAL) {
if ((int)(CheckYcRec[i].GetYcValue()+0.5) <= (int)(CheckYcValue[i]+0.5)){
ycLockStatus[i] = TRUE;
ff |= LOCK_YC;
}
}
else if (CheckYcType[i]==IS_NOT_EQUAL) {
if ((int)(CheckYcRec[i].GetYcValue()+0.5) != (int)(CheckYcValue[i]+0.5)){
ycLockStatus[i] = TRUE;
ff |= LOCK_YC;
}
}
}
return ff;
}
};
class VQCGlobalDef{
public:
UINT ClassSize;
BOOL bCanUse; //参数可用标志
BYTE RunMode; //运行模式,电压优先,无功优先,综合考虑,只考虑电压,只考虑无功
BYTE DevControlMode;//设备控制模式,2-只动分接头,1-只动电容或抗器,0-都有
BYTE SeasonNum;
BYTE currSeasonNo; //当前季节
BYTE EndMonth[UQ_SEASON_NUMBER]; //季节时段的结束日期
BYTE EndDay[UQ_SEASON_NUMBER];
BYTE AdjustPeriodTime; //调节周期
BOOL bWatch; //监视标志
UINT MaxActTimes;
UINT NextActTime; // 动作间隔
BOOL bUseMean; //不用权值计算,采用平均值计算
BOOL bUseCos; //根据功率因数下定值
BOOL bFirstDrq; //优先投切电容器来调电压
BOOL bSameAllDevice; //所有设备的限值相同
//run VAlue
UINT runTime; //VQC已运行时间
CTime currTime;
DBLINK noUseDBLINK[10];
BYTE noUseByte[100];
VQCGlobalDef(){
bCanUse = FALSE;
ClassSize = sizeof(VQCGlobalDef);
RunMode = VQCMODE_FIRST_U;
DevControlMode = DEVMODE_ALL;
SeasonNum = 4;
EndMonth[0] = 3;
EndMonth[1] = 6;
EndMonth[2] = 9;
EndMonth[3] = 12;
EndDay[0] = 1;
EndDay[1] = 1;
EndDay[2] = 1;
EndDay[3] = 1;
bWatch = true;
AdjustPeriodTime = 3;
MaxActTimes = 80;
NextActTime = 30;
bSameAllDevice = TRUE;
bUseMean = FALSE;
bUseCos = FALSE;
runTime = 10000;
currTime = CTime::GetCurrentTime();
//SelectSeasonProc();
};
BOOL CheckParam(char *alarmMsg){
BYTE i;
alarmMsg[0]=0;
strcpy(alarmMsg, "全局参数不对!");
if (ClassSize != sizeof(VQCGlobalDef)) return FALSE;
if (RunMode>VQCMODE_ONLY_Q) return FALSE;
if (DevControlMode>DEVMODE_ONLY_DRQ) return FALSE;
if ((AdjustPeriodTime<1)||(AdjustPeriodTime>30)) {
strcpy(alarmMsg, " 调节周期时间设置错!");
return FALSE;
}
strcpy(alarmMsg, " 季节时间设置错!");
if (SeasonNum>UQ_SEASON_NUMBER) return FALSE;
for (i=0;i<SeasonNum;i++){
if (EndMonth[i] <1) return FALSE;
if (EndMonth[i] >12)return FALSE;
if (EndDay[i] >31) return FALSE;
if (EndDay[i] <1) return FALSE;
}
for (i=1;i<SeasonNum;i++){
if (EndMonth[i] <EndMonth[i-1]) return FALSE;
if (EndMonth[i] ==EndMonth[i-1])
if (EndDay[i] <=EndDay[i-1]) return FALSE;
}
alarmMsg[0]=0;
return TRUE;
};
void SelectSeasonProc(){ //选择季节
int i;
if (SeasonNum<=1) {
currSeasonNo = 0;
return;
}
currTime = CTime::GetCurrentTime();
for (i=0;i<SeasonNum;i++){
if (currTime.GetMonth() > EndMonth[i]) continue;
if (currTime.GetMonth() < EndMonth[i]) break;
if (currTime.GetDay() < EndDay[i]) break;
}
i += SeasonNum;
i --;
i %= SeasonNum;
currSeasonNo =i;
};
};
class VQCSOE{
public:
BYTE isFjt;
BYTE operType;
BYTE zbNo;
BYTE mxNo;
char operDevName[125];
BYTE ykNo;
int zbDw;
float U;
float Q;
float uMeanValue;
float uUpLimit;
float uDownLimit;
float qMeanValue;
float qUpLimit;
float qDownLimit;
CTime HappenTime;
bool SaveVQCSoeProc(int rtuNo){
HFILE hFile;
CString fileName(VQC_SOE_PATH);
char szText[40];
UINT writeByteNum;
wsprintf(szText, "RTU%02d\\%02d%02d%02d%02d.Y%02d",
rtuNo,
HappenTime.GetMonth(),HappenTime.GetDay(),
HappenTime.GetHour(),HappenTime.GetMinute(),
HappenTime.GetYear()%100);
fileName += szText;
hFile=_lcreat(fileName, 0);
if (hFile==HFILE_ERROR) return FALSE;
writeByteNum = _lwrite(hFile,(char *)this,sizeof(VQCSOE));
_lclose(hFile);
if (writeByteNum != sizeof(VQCSOE)) return FALSE;
return (TRUE);
};
BOOL ReadVQCSoeProc(char *fileName){
HFILE hFile;
UINT readByteNum;
CString fn(VQC_SOE_PATH);
fn += fileName;
hFile=_lopen(fn, OF_READ);
if (hFile==HFILE_ERROR) return FALSE;
readByteNum = _lread(hFile,(char *)this,sizeof(VQCSOE));
_lclose(hFile);
if (readByteNum != sizeof(VQCSOE)) return FALSE;
return (TRUE);
};
};
extern class YKTRANSDEFINE ykTrans;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -