?? evtdb.cpp
字號(hào):
strcat(path3,"Soe_Xiao_on.wav");
break;
case YX_OTH_OFF: // 15 其他信號(hào)消失
strcat(path3,"Soe _Other_Off.wav");
break;
case YX_OTH_ON: // 16 其他信號(hào)產(chǎn)生
strcat(path3,"Soe _Other_On.wav");
break;
///////////////////zjh 2004.6.28/////////////////////////////////
default:
strcat(path3,"default.wav");
break;
}
break;
case EVT_YK : // 13 //:遙控
strcat(path,"Yk\\");
strcpy(path2,path);
strcpy(path3,path);
strcpy(path1,path2);//
sprintf(temppath,"%d",evt_tmp[i].RTUNo);
strcat(path1,temppath);
strcat(path1,".wav");//廠
strcat(path2,evt_tmp[i].InfoName);
strcat(path2,".wav");
mOffOrOnF = true;
switch(SubtypeID)
{
case EVT_YK_OFF: //0合-〉分
strcat(path3,"yk_off.wav");
strcat(path,"yk_offdefault.wav");
break;
case EVT_YK_ON: //1分-〉合
strcat(path3,"yk_on.wav");
strcat(path,"yk_ondefault.wav");
break;
default:
strcat(path3,"default.wav");
break;
}
break;
case EVT_YT : // 14 //:遙調(diào)
strcat(path,"Yt\\");
strcpy(path2,path);
strcpy(path3,path);
strcpy(path1,path2);//
sprintf(temppath,"%d",evt_tmp[i].RTUNo);
strcat(path1,temppath);
strcat(path1,".wav");//廠
strcat(path2,evt_tmp[i].InfoName);
strcat(path2,".wav");
mOffOrOnF = true;
switch(SubtypeID)
{
case EVT_YT_UP: // 0升
strcat(path3,"yt_up.wav");
strcat(path,"yt_updefault.wav");
break;
case EVT_YT_DOWN: // 1降
strcat(path3,"yt_down.wav");
strcat(path,"yt_downdefault.wav");
break;
case EVT_YT_STOP: // 2急停
strcat(path3,"yt_stop.wav");
strcat(path,"yt_stopdefault.wav");
break;
default:
strcat(path3,"default.wav");
break;
}
break;
case EVT_DZ : // 15 //:定值
strcat(path,"Dz\\");
strcpy(path2,path);
strcpy(path3,path);
strcpy(path1,path2);//
sprintf(temppath,"%d",evt_tmp[i].RTUNo);
strcat(path1,temppath);
strcat(path1,".wav");//廠
strcat(path2,evt_tmp[i].InfoName);
strcat(path2,".wav");
// mOffOrOnF = true;
switch(SubtypeID)
{
case EVT_DZ_DZ : //0 定值
strcat(path3,"dz_dz.wav");
break;
case EVT_BH_RESET: //1保護(hù)復(fù)歸
strcat(path3,"bh_reset.wav");
strcat(path,"bh_resetdefault.wav");
break;
case EVT_MODIFY_T : //2 手工對(duì)時(shí)
strcat(path3,"modify_t.wav");
strcat(path,"modify_tdefault.wav");
break;
default:
strcat(path3,"default.wav");
break;
}
break;
}
/*////////////2004.5.20 張軍華 屏蔽報(bào)告主機(jī)名消息//////////CFileFind
if(!(PlaySound(path1,NULL,SND_SYNC)))//
{
PlaySound(path,NULL,SND_ASYNC);
return ;
}
*/
CFileFind finder;
int mFileExistF = 0;
char *lpStr1;
//電笛和電鈴?fù)瑫r(shí)被選中時(shí)先播放電鈴再播放電笛
if(type==2 || type==4)//若選中電鈴且“C:\yh-5000\Sound\電鈴.wav”文件存在,播放電鈴
{
ZeroMemory(path4,MAX_PATH);
strcpy(path4,m_strSoundpath);
strcat(path4,"電鈴.wav");
lpStr1 = path4;
mFileExistF = finder.FindFile(lpStr1);
if(mFileExistF == 1)
PlaySound(path4,NULL,SND_SYNC);
}
if(type==3 || type==4)//若選中電笛且“C:\yh-5000\Sound\電笛.wav”文件存在,播放電笛
{
ZeroMemory(path4,MAX_PATH);
strcpy(path4,m_strSoundpath);
strcat(path4,"電笛.wav");
lpStr1 = path4;
mFileExistF = finder.FindFile(lpStr1);
if(mFileExistF == 1)
PlaySound(path4,NULL,SND_SYNC);
}
lpStr1 = path2;
mFileExistF = finder.FindFile(lpStr1);
if(mFileExistF == 1 && mOffOrOnF)
{
PlaySound(path2,NULL,SND_SYNC);
PlaySound(path3,NULL,SND_SYNC);
}
else
{
PlaySound(path3,NULL,SND_SYNC);
}
lpStr1 = pathoptname;
mFileExistF = finder.FindFile(lpStr1);
if(mFileExistF == 1)//若該操作員姓名的語(yǔ)音文件存在,操作人
{
PlaySound(pathopt,NULL,SND_SYNC);
PlaySound(pathoptname,NULL,SND_SYNC);
}
/* if(!(PlaySound(path2,NULL,SND_SYNC)))//組合聲音第一個(gè)同步,第二個(gè)異步
{
PlaySound(path,NULL,SND_ASYNC);
return ;
}
if(!PlaySound(path3,NULL,SND_SYNC))
{
PlaySound(path,NULL,SND_ASYNC);
return ;
}*/
/*////////////2004.5.20 張軍華 屏蔽報(bào)告操作人消息//////////
if((pathopt!=0)&&(pathoptname!=NULL))
{
PlaySound(pathopt,NULL,SND_SYNC);
PlaySound(pathoptname,NULL,SND_SYNC);
}
*/
return ;
}
char evtdb::IsNeedVoiceWarn(BYTE TypeID, BYTE SubtypeID)
if((TypeID<0)||(TypeID>=M_EVTT))
return -1;
if((SubtypeID<0)||(SubtypeID>=M_EVTTS))
return -1;
char ind=IndEvtT[TypeID][SubtypeID];
if((ind<0)||(ind>=M_EVT))
return -1;
char tmpc=0;
if(1==m_pEvtType[ind].IfShow)
{
if(1 == m_pEvtType[ind].IfPlaySound)
{
if((1 == m_pEvtType[ind].IfRing) && (1 == m_pEvtType[ind].IftelAlarm))
tmpc=4;//電鈴和電笛都被選中
else if(1 == m_pEvtType[ind].IfRing)
tmpc=2;//電鈴被選中
else if(1 == m_pEvtType[ind].IftelAlarm)
tmpc=3;//電笛被選中
else
tmpc=1;
}
else tmpc=0;
}
else
tmpc=-1;
return tmpc;
}
bool evtdb::AckVoiceWarn(int index,char F)
{
LSI_GetTableID("scada","event",m_Evtid);//COMMON_Node
if ((m_pEvt1=(MEMTABLE*)LSI_GetTableAdd(m_Evtid&0xffff))==NULL)
{
return false;
}
m_pEvt=(scada_event*)m_pEvt1->data;
if(!m_ptmp) return 1;
if(F)
{
m_ptmp[index].numS++;
evt_tmp[index].numS++;
LSI_SetChanged(m_tmpid,index);
}
else
{
m_ptmp[index].IfPlaySound = 1;
evt_tmp[index].IfPlaySound = 1;
LSI_SetChanged(m_Evtid,index);
}
return 1;
}
bool evtdb::SetIfShow(int nCounts,int bResult)
{
evttype[nCounts].IfShow=bResult ;// .IfSave; //IfShow;
return true;
}
bool evtdb::GetIfShow(int nCounts)
{
return evttype[nCounts].IfShow;// .IfSave; //IfShow;
}
bool evtdb::GetIfPlaySound(int nCounts)
{
return evttype[nCounts].IfPlaySound;// .IfSave; //IfShow;
}
bool evtdb::GetIfPicture(int nCounts)
{
return evttype[nCounts].IfPicture;// .IfSave; //IfShow;
}
bool evtdb::GetIfPlayRing(int nCounts)
{
return evttype[nCounts].IfRing;// .IfSave; //IfShow;
}
bool evtdb::GetIfPlayAlarm(int nCounts)
{
return evttype[nCounts].IftelAlarm;// .IfSave; //IfShow;
}
bool evtdb::GetIfPrint(int nCounts)
{
return evttype[nCounts].IfPrint;// .IfSave; //IfShow;
}
//char EventCode[16];//事項(xiàng)句
char * evtdb::GetEventCode(int nCounts)
{
return m_pEvtType[nCounts].EventCode;
}
bool evtdb::SetIfPlaySound(int nCounts,int bResult)
{
evttype[nCounts].IfPlaySound=bResult ;// .IfSave; //IfShow;
return true;
}
bool evtdb::SetIfPicture(int nCounts,int bResult)
{
evttype[nCounts].IfPicture=bResult ;// .IfSave; //IfShow;
return true;
}
bool evtdb::SetIfPlayRing(int nCounts,int bResult)
{
evttype[nCounts].IfRing=bResult ;// .IfSave; //IfShow;
return true;
}
bool evtdb::SetIfPlayAlarm(int nCounts,int bResult)
{
evttype[nCounts].IftelAlarm=bResult ;// .IfSave; //IfShow;
return true;
}
bool evtdb::SetIfPrint(int nCounts,int bResult)
{
evttype[nCounts].IfPrint=bResult ;// .IfSave; //IfShow;
return true;
}
void evtdb::SetSave()
{
SetCheckData();
memset(&m_nod,0,sizeof(COMMON_Node));
memcpy(m_nod.proName,"RealEv",16);
m_nod.type =1; ;
m_nod.status =1; ;
memcpy(&m_nod.info[0],&g_NumC, 1);
memcpy(&m_nod.info[1],&g_NumT, 1);
memcpy(&m_nod.info[2],&g_TimeC,4);
memcpy(&m_nod.info[6],&g_TimeT,4);
memcpy(&m_nod.info[10],&g_MDrect,1);
memcpy(&m_nod.info[11],&m_bOnlyNew,1);
memcpy(&m_nod.info[12],&m_bVoice,1);
memcpy(&m_nod.info[13],&m_bPrint,1);
Is_ChgF=true;
/* if(!m_pNode) return;
// m_pNode=(COMMON_Node*)m_pNode1->data;
int num=m_pNode1->userec;
int m_FrtIn=-1;
for (int i=0; i <num; i++)
{
if (strcmp(m_nod.proName,m_pNode[i].proName)==0)
{
m_FrtIn=i;
break;
}
}
if(m_FrtIn<0)
LSI_AppendRec("COMMON.Node", &m_nod);
else
{
memcpy(m_pNode[m_FrtIn].info,m_nod.info,32);
m_pNode1->recattr[m_FrtIn].changed=1;
}*/
CFile fileLBL;
if(fileLBL.Open("C:\\yh-5000\\config\\RealEv.ini", CFile::modeCreate|CFile::modeWrite))
{
fileLBL.WriteHuge(&m_nod,sizeof(COMMON_Node));
fileLBL.Close();
}
}
void evtdb::SetOpen()
{
m_pNode=NULL;
m_pEvt=NULL;
m_pEvtType=NULL;
memset(&evt0,0,sizeof(scada_event));//2006.7.15
memset(evt_tmp,0,sizeof(scada_event)*MAXEVT);//2006.7.12
LSI_GetTableID("scada","eventType",m_EvtTid);//COMMON_Node
if ((m_pEvtType1=(MEMTABLE*)LSI_GetTableAdd(m_EvtTid&0xffff))==NULL)
{
MessageBox(0,"獲得數(shù)據(jù)失敗!","錯(cuò)誤",MB_OK|MB_ICONERROR);
return;
}
m_pEvtType=(scada_eventType*)m_pEvtType1->data;
m_nEvtTypeCounts = m_pEvtType1->userec;
for(int i=0;i<M_EVTT;i++)
for(int j=0;j<M_EVTTS;j++)
IndEvtT[i][j]=-1;
for( i=0;i<m_nEvtTypeCounts;i++)
{
if((m_pEvtType[i].TypeID<0)||(m_pEvtType[i].TypeID>=M_EVTT)) continue;
if((m_pEvtType[i].SubtypeID<0)||(m_pEvtType[i].SubtypeID>=M_EVTTS)) continue;
IndEvtT[m_pEvtType[i].TypeID][m_pEvtType[i].SubtypeID]=i;
}
LSI_GetTableID("scada","event",m_Evtid);//COMMON_Node
if ((m_pEvt1=(MEMTABLE*)LSI_GetTableAdd(m_Evtid&0xffff))==NULL)
{
MessageBox(0,"獲得數(shù)據(jù)失敗!","錯(cuò)誤",MB_OK|MB_ICONERROR);
return;
}
m_pEvt=(scada_event*)m_pEvt1->data;
SetCheckData();
LSI_GetTableID("scada","event",m_tmpid);//COMMON_Node
if ((m_ptmp1=(MEMTABLE*)LSI_GetTableAdd(m_Evtid&0xffff))==NULL)
{
return ;
}
m_ptmp=(scada_event*)m_ptmp1->data;
// memcpy(evt_tmp,m_ptmp,sizeof(scada_event)*m_ptmp1->userec);//2006.7.12
evt=m_ptmp; //事件的緩沖區(qū)
nEvt=m_ptmp1->userec;
////////////////////////////
memset(&m_nod,0,sizeof(COMMON_Node));
memcpy(m_nod.proName,"RealEv",16);
m_nod.type =1; ;
m_nod.status =1; ;
g_NumC=1;
g_NumT=1;
g_TimeC=0.0;
g_TimeT=0.0;
g_MDrect=1;
m_bOnlyNew=0;
m_bVoice=1;
m_bPrint=0;
CFile fileLBL;
if(fileLBL.Open("C:\\yh-5000\\config\\RealEv.ini", CFile::modeRead))
{
fileLBL.Read(&m_nod,sizeof(COMMON_Node));
fileLBL.Close();
memcpy(&g_NumC, &m_nod.info[0],1);
memcpy(&g_NumT, &m_nod.info[1],1);
memcpy(&g_TimeC,&m_nod.info[2],4);
memcpy(&g_TimeT,&m_nod.info[6],4);
memcpy(&g_MDrect,&m_nod.info[10],1);
memcpy(&m_bOnlyNew,&m_nod.info[11],1);
memcpy(&m_bVoice,&m_nod.info[12],1);
memcpy(&m_bPrint,&m_nod.info[13],1);
}
//////////////////////////////
}
void evtdb::SetCheckData()
{
if((g_NumC>7)||(g_NumC<0)) g_NumC=1 ;
if((g_NumT>3)||(g_NumT<0)) g_NumT=1 ;
if((g_TimeC>10)||(g_TimeC<0)) g_TimeC=0.5 ;
if((g_TimeT>20)||(g_TimeT<0)) g_TimeT=1.0 ;
}
void evtdb::push_evt(scada_event evtt)
{
memcpy(&evt_tmp,&evt_tmp[1],sizeof(scada_event)*(nEvt-1));
memcpy(&evt_tmp[nEvt-1],&evtt,sizeof(scada_event));
}
void evtdb::push_evt()
{
return;
int i = 0,num = 0;
int j=0;
m_pEvt=(scada_event*)GetAllEvent(num); //返回記錄
if(num==0) return;
for( i=num-1;i>0;i--)
{
if(EvtCmp(&m_pEvt[i],&evt[nEvt-1]))
{
if(j<1) return;
nEvt = num;
memcpy(&evt,&evt[j],sizeof(scada_event)*(nEvt-j));
memcpy(&evt[nEvt-j],&m_pEvt[num-j],sizeof(scada_event)*j);
return;
}
j++;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -