|
具体每款编程器型号支持哪些芯片,对于平时使用来说也没必要导出查看,一般都是直接打开软件通过选择芯片型号就可以知道支持了。
但是有时候想知道具体支持哪些或者推广时,这个还是必须的,也不用每次都更新支持列表,直接导出就可以了
导出界面很简单,只需要设置输出路径就可以了
输出直接是htm文件,大概样式如上图,会以芯片类型,厂家的形式列出
调取CProgDeviceList窗口类:
void CUUProgDlg::OnToolCreateDeviceList()
{
// TODO: Add your command handler code here
CProgDeviceList creatdevicelistdlg;
creatdevicelistdlg.DoModal();
}
CProgDeviceList窗口类的功能函数
窗口初始化函数,主要填充支持数据
BOOL CProgDeviceList::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CString str;
str.Format("%d",m_iDeviceManuCount);
SetDlgItemText(IDC_DeviceManuCount,str+"家");
str.Format("%d",m_iDeviceCount);
SetDlgItemText(IDC_DeviceCount,str+"种");
str.Format("%d",m_iMPUCount);
SetDlgItemText(IDC_MPUCount,str+"种");
str.Format("%d",m_iEpromCount);
SetDlgItemText(IDC_EpromCount,str+"种");
str.Format("%d",m_iPromCount);
SetDlgItemText(IDC_PromCount,str+"种");
str.Format("%d",m_iPLDCount);
SetDlgItemText(IDC_PLDCount,str+"种");
str.Format("%d",m_iTestICCount);
SetDlgItemText(IDC_TestICCount,str+"种");
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
下面这个是主要实现输出列表的函数,通过遍历支持库,这个比较麻烦,也比较难理解
void CProgDeviceList::OnOK()
{
// TODO: Add extra validation here
CString DeviceFilename;
CFile devicefile;
CString temp,str;
CTime tm;
if(!m_sFolderPath.IsEmpty())
{
tm = CTime::GetCurrentTime();
DeviceFilename = m_sFolderPath + "devicelist.htm";
parent->SetAppLog("生成芯片支持列表文件...");
if(devicefile.Open(DeviceFilename, CFile::modeWrite | CFile::modeCreate |CFile::shareDenyNone))
{
temp = "<html>\r\n<title>UUProg编程器支持芯片列表</title>\r\n<body>\r\n";
temp += "<p align=center>\r\n<font size=4 color=#666666 face=黑体>UUProg编程器支持芯片列表</font><br></p>\r\n";
temp += "<table>\r\n<tr><td>编程器型号:</td><td>"+parent->m_sUUProgType+"</td></tr>\r\n";
temp += "<tr><td>序列号:</td><td>"+parent->m_sUUProgSN+"</td></tr>\r\n";
temp += "<tr><td>硬件PCB版本:</td><td>"+parent->m_sUUProgHWVer+"</td></tr>\r\n";
temp += "<tr><td>固件版本:</td><td>"+parent->m_sUUProgFWVer+"</td></tr>\r\n";
temp += "<tr><td>软件版本:</td><td>V"+parent->m_sAppVer+"</td></tr>\r\n";
temp += "<tr><td>生成时间:</td><td>"+tm.Format("%Y-%m-%d")+"</td></tr>\r\n";
str.Format("%d",parent->m_arDeviceList.GetSize());
temp += "<tr><td>支持芯片数量:</td><td>"+str+"</td></tr>\r\n";
temp += "</table>\r\n<br><br><table>\r\n";
str.Format("%d",m_iMPUCount);
temp += "<tr><td colspan==5>MCU/MPU:"+str+"</td></tr>\r\n";
temp += "<tr><td></td><td></td><td></td><td></td><td></td></tr>\r\n";
str.Format("%d",m_iEpromCount);
temp += "<tr><td colspan==5>EPROM/EEPROM:"+str+"</td></tr>\r\n";
temp += "<tr><td></td><td></td><td></td><td></td><td></td></tr>\r\n";
str.Format("%d",m_iPromCount);
temp += "<tr><td colspan==5>PROM:"+str+"</td></tr>\r\n";
temp += "<tr><td></td><td></td><td></td><td></td><td></td></tr>\r\n";
str.Format("%d",m_iPLDCount);
temp += "<tr><td colspan==5>PLD/CPLD/FPGA:"+str+"</td></tr>\r\n";
temp += "<tr><td></td><td></td><td></td><td></td><td></td></tr>\r\n";
str.Format("%d",m_iTestICCount);
temp += "<tr><td colspan==5>测试IC:"+str+"</td></tr>\r\n";
temp += "<tr><td></td><td></td><td></td><td></td><td></td></tr>\r\n";
temp += "</table>\r\n<p align=center>\r\n<font size=4 color=#666666 face=黑体>网站:http://kitebee.meibu.com</font><br>\r\n";
temp += "<font size=4 color=#666666 face=黑体> http://kitebee.gnway.net</font><br>\r\n";
temp += "<font size=4 color=#666666 face=黑体>QQ群:41210778</font><br>\r\n";
temp += "<font size=4 color=#666666 face=黑体>UUProg编程器软、硬件版权归LIYF所有</font><br></p>\r\n";
temp += "</body>\r\n</html>\r\n";
devicefile.Write(temp,temp.GetLength());
devicefile.Close();
parent->SetAppLog("生成完成!");
ShellExecute(NULL,"open",DeviceFilename,NULL,NULL,SW_SHOW);
CDialog::OnOK();
}
else
{
parent->SetAppLog("创建芯片支持列表文件失败!");
AfxMessageBox("创建芯片支持列表文件失败!");
}
}
else
{
parent->SetAppLog("请选择文件存放路径!");
AfxMessageBox("请选择文件存放路径!");
}
}
该部分还有部分功能有待完善,下次在跟进
|
|