📄 mainfrm.cpp
字号:
file.Read(bufTemp,nLen);
for(int k=0;k<9600;k++)
{
a = ~bufTemp[k];
bufTemp[k] = a;
}
for(int i=0;i<240;i++)
{
for(int j=0;j<40;j++)
memcpy(&dataBuf[9600 - (i + 1) * 40 + j],&bufTemp[i * 40 + j],1);
}
}
else
file.Read(dataBuf,nLen);
if(nLen%256 == 0)
i = nLen/256;
else
i = nLen/256 + 1;
file.Close();
return i;
}
/************************************************************************/
/* 老格式的SET文件生成和修改 */
/************************************************************************/
//生成旧参数文件
void CMainFrame::OnSetoldNew()
{
// TODO: Add your command handler code here
ZeroMemory(¶,sizeof(para));
CFile file;
CString str;
CPropertySheet canshuSheet("普通参数设置",this);
CDlgYcPara ycDlg;
CDlgYxPara yxDlg;
CDlgYkYtPara ykytDlg;
CDlgAlarmPara alarmDlg;
canshuSheet.AddPage(&ycDlg);
canshuSheet.AddPage(&yxDlg);
canshuSheet.AddPage(&ykytDlg);
canshuSheet.AddPage(&alarmDlg);
if(canshuSheet.DoModal() == IDOK)
{
ShowList(false);
CString szFilter = _T("参数文件 (*.set)|*.set|All Files (*.*)|*.*||");
CFileDialog dlg(false,NULL,str.IsEmpty()?NULL:(char*)(const char*)str,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()==IDOK)
{
CString fileName = dlg.GetPathName();
NameCanshuFile(fileName);
ChangeFileAttribute(fileName);
para.CheckSum = Check_Coe((BYTE*)¶,sizeof(para)-2);
if(file.Open(fileName,CFile::modeWrite|CFile::modeCreate))
{
file.Write(¶,sizeof(para));
file.Close();
}
}
}
}
//修改旧参数文件
void CMainFrame::OnSetoldChange()
{
// TODO: Add your command handler code here
ZeroMemory(¶,sizeof(para));
unsigned short checksum;
CFile file;
CString str;
CString szFilter =
_T("参数文件 (*.set)|*.set|All Files (*.*)|*.*||");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
str = dlg.GetPathName();
ChangeFileAttribute(str);
if(file.Open(str,CFile::modeRead))
{
file.Read(¶,sizeof(para));
checksum = Check_Coe((BYTE*)¶,sizeof(para)-2);
int nFileSize = file.GetLength();
file.Close();
if(((checksum&0xff)!=(para.CheckSum&0xff))||((checksum>>8)!=(para.CheckSum>>8))||(nFileSize!=sizeof(para)))
{
MessageBox(_T("参数文件校验码错误或长度错误,请确认参数文件格式与监控单元是否对应!"),_T("提示"),MB_ICONSTOP);
return;
}
CPropertySheet canshuSheet("普通参数设置",this);
CDlgYcPara ycDlg;
CDlgYxPara yxDlg;
CDlgYkYtPara ykytDlg;
CDlgAlarmPara alarmDlg;
canshuSheet.AddPage(&ycDlg);
canshuSheet.AddPage(&yxDlg);
canshuSheet.AddPage(&ykytDlg);
canshuSheet.AddPage(&alarmDlg);
if(canshuSheet.DoModal() == IDOK)
{
szFilter = _T("参数文件 (*.set)|*.set|All Files (*.*)|*.*||");
CFileDialog dlg(false,NULL,str.IsEmpty()?NULL:(char*)(const char*)str,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()==IDOK)
{
CString fileName = dlg.GetPathName();
NameCanshuFile(fileName);
ChangeFileAttribute(fileName);
para.CheckSum = Check_Coe((BYTE*)¶,sizeof(para)-2);
if(file.Open(fileName,CFile::modeWrite|CFile::modeCreate))
{
file.Write(¶,sizeof(para));
file.Close();
}
}
}
}
}
}
/************************************************************************/
/* 新格式的SET文件生成和修改 */
/************************************************************************/
//生成新参数文件
void CMainFrame::OnSetnewNew()
{
// TODO: Add your command handler code here
ZeroMemory(&df0241_para,sizeof(df0241_para));
CString szFilter = _T("参数文件 (*.set)|*.set|All Files (*.*)|*.*||");
CFileDialog dlg(false,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()==IDOK)
{
ShowList(false);
CString fileName = dlg.GetPathName();
NameCanshuFile(fileName);
ChangeFileAttribute(fileName);
CFile file;
if(file.Open(fileName,CFile::modeWrite|CFile::modeCreate))
{
file.Write(&df0241_para,sizeof(df0241_para));
file.Close();
}
CPropertySheet canshuSheet("分布式参数设置",this);
CDlgLocalPara localPara;
CDlgAcuPara acDlg;
CDlgYxuPara yxDlg;
CDlgDcuPara dctDlg;
CDlgMsuPara msuDlg;
localPara.SetFileName(fileName);
acDlg.SetFileName(fileName);
yxDlg.SetFileName(fileName);
dctDlg.SetFileName(fileName);
msuDlg.SetFileName(fileName);
canshuSheet.AddPage(&localPara);
canshuSheet.AddPage(&msuDlg);
canshuSheet.AddPage(&dctDlg);
canshuSheet.AddPage(&acDlg);
canshuSheet.AddPage(&yxDlg);
if(canshuSheet.DoModal() == IDOK)
{
df0241_para.CheckSum = Check_Coe((BYTE*)&df0241_para,sizeof(df0241_para)-2);
if(file.Open(fileName,CFile::modeWrite|CFile::modeCreate))
{
file.Write(&df0241_para,sizeof(df0241_para));
file.Close();
}
}
}
}
//修改新参数文件
void CMainFrame::OnSetnewChange()
{
// TODO: Add your command handler code here
ZeroMemory(&df0241_para,sizeof(df0241_para));
unsigned short checksum;
CFile file;
CString str;
CString szFilter =
_T("参数文件 (*.set)|*.set|All Files (*.*)|*.*||");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
str = dlg.GetPathName();
ChangeFileAttribute(str);
if(file.Open(str,CFile::modeRead))
{
file.Read(&df0241_para,sizeof(df0241_para));
checksum = Check_Coe((BYTE*)&df0241_para,sizeof(df0241_para)-2);
int nFileSize = file.GetLength();
file.Close();
if(((checksum&0xff)!=(df0241_para.CheckSum&0xff))||((checksum>>8)!=(df0241_para.CheckSum>>8))||(nFileSize!=sizeof(df0241_para)))
{
MessageBox(_T("参数文件校验码错误或长度错误,请确认参数文件格式与监控单元是否对应!"),_T("提示"),MB_ICONSTOP);
return;
}
CPropertySheet canshuSheet("分布式参数设置",this);
CDlgAcuPara acDlg;
CDlgYxuPara yxDlg;
CDlgDcuPara dctDlg;
CDlgMsuPara msuDlg;
CDlgLocalPara localPara;
localPara.SetFileName(str);
acDlg.SetFileName(str);
yxDlg.SetFileName(str);
dctDlg.SetFileName(str);
msuDlg.SetFileName(str);
canshuSheet.AddPage(&localPara);
canshuSheet.AddPage(&msuDlg);
canshuSheet.AddPage(&dctDlg);
canshuSheet.AddPage(&acDlg);
canshuSheet.AddPage(&yxDlg);
if(canshuSheet.DoModal() == IDOK)
{
df0241_para.CheckSum = Check_Coe((BYTE*)&df0241_para,sizeof(df0241_para)-2);
if(file.Open(str,CFile::modeWrite|CFile::modeCreate))
{
file.Write(&df0241_para,sizeof(df0241_para));
file.Close();
}
}
}
}
}
void CMainFrame::NameCanshuFile(CString &file)
{
int i = file.GetLength();
if(i<=4)
file+=".set";
else
{
CString strTemp = file.Right(4);
strTemp.MakeLower();
if(strTemp!=".set")
file+=".set";
}
}
unsigned short CMainFrame::Check_Coe(BYTE *buf, int len)
{
unsigned int checksum=0;
for(int i=0;i<len;i++)
checksum+=*(buf+i);
return ((checksum&0xffff)+(checksum>>16));
}
void CMainFrame::OnUploadcanshuOld()
{
// TODO: Add your command handler code here
CString szFilter =
_T("上装参数 (*.set)|*.set||");
CFileDialog dlg(false,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
nCanshuUploadFlag = CANSHU_SEND_COUNT;
nExtFunc = 41;
CString str = dlg.GetPathName();
int len = str.GetLength();
if(len <=4)
str+=".set";
else
{
CString strTemp = str.Right(3);
strTemp.MakeLower();
if(strTemp!="set")
str+=".set";
}
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("上装参数(分布式)"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
void CMainFrame::OnUploadcanshuNew()
{
// TODO: Add your command handler code here
CString szFilter =
_T("上装参数 (*.set)|*.set||");
CFileDialog dlg(false,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
nCanshuUploadFlag = CANSHU_SEND_COUNT_NEW;
nExtFunc = 41;
CString str = dlg.GetPathName();
int len = str.GetLength();
if(len <=4)
str+=".set";
else
{
CString strTemp = str.Right(3);
strTemp.MakeLower();
if(strTemp!="set")
str+=".set";
}
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("上装参数(分布式)"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
//上装图像
void CMainFrame::OnUpbmp()
{
CString szFilter =
_T("上装图像 (*.bmp)|*.bmp||");
CFileDialog dlg(false,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
nExtFunc = 40;
CString str = dlg.GetPathName();
int len = str.GetLength();
if(len <=4)
str+=".bmp";
else
{
CString strTemp = str.Right(3);
strTemp.MakeLower();
if(strTemp!="bmp")
str+=".bmp";
}
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("上装图像"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
void CMainFrame::OnDownbmp()
{
CBmpDialog dlg;
if(dlg.DoModal()!=IDCANCEL)
{
if(!dlg.bBmpCanUse)
{
MessageBox(_T("所选图像不符合下发要求,请重新选择!"),_T("图像下发"),MB_ICONQUESTION);
return;
}
else
{
if((dlg.nBmpIndex < 1)||(dlg.nBmpIndex > 6))
{
MessageBox(_T("所设图像序号应在1-6之间,请重新设定!"),_T("图像下发"),MB_ICONQUESTION);
return;
}
}
ShowList(false);
nExtFunc = dlg.nBmpIndex + 2;
CString str = dlg.GetPathName();
nSendFileCount = GetFileSendCount(str);
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("下发图像1"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
void CMainFrame::OnDownProgram()
{
CString szFilter =
_T("维护程序 (*.rom)|*.rom|All Files (*.*)|*.*||");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
nExtFunc = 20;
CString str = dlg.GetPathName();
nSendFileCount = GetFileSendCount(str);
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("下发维护程序"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
void CMainFrame::OnDownMaintainprogram()
{
// TODO: Add your command handler code here
CString szFilter =
_T("监控主程序 (*.rom)|*.rom|All Files (*.*)|*.*||");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
nExtFunc = 11;
CString str = dlg.GetPathName();
nSendFileCount = GetFileSendCount(str);
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("下发监控主程序"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
void CMainFrame::OnDownAcsii()
{
// TODO: Add your command handler code here
CString szFilter =
_T("ASCII字库文件 (*.*)|*.*|All Files (*.*)|*.*||");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
nExtFunc = 9;
CString str = dlg.GetPathName();
nSendFileCount = GetFileSendCount(str);
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("下发ASCII字库文件"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
void CMainFrame::OnDownChinese()
{
// TODO: Add your command handler code here
CString szFilter =
_T("汉字字库文件 (*.*)|*.*|All Files (*.*)|*.*||");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
nExtFunc = 10;
CString str = dlg.GetPathName();
nSendFileCount = GetFileSendCount(str);
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("下发汉字字库文件"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
void CMainFrame::OnDown88()
{
// TODO: Add your command handler code here
CString szFilter =
_T("8*8字库文件 (*.*)|*.*|All Files (*.*)|*.*||");
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
if(dlg.DoModal()!=IDCANCEL)
{
ShowList(false);
nExtFunc = 12;
CString str = dlg.GetPathName();
nSendFileCount = GetFileSendCount(str);
if(OrganiseData(nExtFunc,nSerialNo,str))
{
SetActionExpain(1,_T("下发8*8字库文件"));
SetActionExpain(2,str);
SetActionExpain(5,GOING);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -