DIY编程器网

标题: uuprog开发教程:芯片支持列表导出 [打印本页]

作者: liyf    时间: 2015-5-6 12:35
标题: uuprog开发教程:芯片支持列表导出
具体每款编程器型号支持哪些芯片,对于平时使用来说也没必要导出查看,一般都是直接打开软件通过选择芯片型号就可以知道支持了。
但是有时候想知道具体支持哪些或者推广时,这个还是必须的,也不用每次都更新支持列表,直接导出就可以了

导出界面很简单,只需要设置输出路径就可以了

输出直接是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("请选择文件存放路径!");
    }

}
该部分还有部分功能有待完善,下次在跟进


作者: hdzl    时间: 2015-5-6 16:26
期待软件的完善
作者: djydwg    时间: 2015-9-3 23:43
向老师请教,飞利浦的N82S123N(和74S288一样〉用哪种型号编程器读写。
作者: robter    时间: 2015-9-18 23:48
向楼主学习,感谢楼主的好资料
作者: 齐元亮    时间: 2016-3-30 10:18
不错!值得学习,楼主继续
作者: weijiaji    时间: 2017-8-22 15:27

期待软件的完善
作者: zydl123    时间: 2021-11-27 16:47
期待软件的完善,支持更多芯片
作者: jintongzzd    时间: 2022-12-17 18:49
非常感谢分享,谢谢




欢迎光临 DIY编程器网 (http://www.diybcq.com/) Powered by Discuz! X3.2