DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3817|回复: 1
打印 上一主题 下一主题

[UUProg] uuprog开发教程:芯片支持库维护7

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-1 11:52:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是个很重要的功能,保存功能必须和加载的对应,不然你知道的,读出来肯定不是你需要的,再然后操作芯片也不是你需要的,再然后出问题也不是你需要的。
下面就是操作函数,非常乏味的处理过程,有兴趣的一定要跟一遍,不然你肯定不明白。
  1. void CProgDeviceManage::OnOK()
  2. {
  3.         // TODO: Add extra validation here
  4.         CFile savefile;
  5.         TypeStruct* pTypeStruct;
  6.         TypeStruct1* pTypeStruct1;

  7.         //保存文件代码
  8.         parent->SetAppLog("保存开始...");
  9.         if(savefile.Open(parent->m_sAppPath+"device.pdl",CFile::shareCompat|CFile::modeCreate|CFile::modeWrite,NULL))
  10.         {
  11.         ZeroMemory(&m_stDFileHead, sizeof(DeviceListFileHeadStruct));
  12.         strcpy(m_stDFileHead.Appname,"UUProg V"+parent->m_sAppVer);
  13.         strcpy(m_stDFileHead.DeviceListFileVer,parent->m_sAppVer);
  14.         m_stDFileHead.DeviceCount = parent->m_arDeviceList.GetSize();
  15.         m_stDFileHead.TypeListCount = parent->m_arTypeList.GetSize();
  16.         m_stDFileHead.OperationListCount = parent->m_arOperationList.GetSize();
  17.         m_stDFileHead.SizeListCount = parent->m_arSizeList.GetSize();
  18.         m_stDFileHead.PinListCount = parent->m_arPinList.GetSize();
  19.         m_stDFileHead.DataWidthListCount = parent->m_arDataWidthList.GetSize();
  20.         m_stDFileHead.PackageListCount = parent->m_arPackageList.GetSize();
  21.         m_stDFileHead.VCCListCount = parent->m_arVCCList.GetSize();
  22.         m_stDFileHead.VPPListCount = parent->m_arVPPList.GetSize();
  23.         m_stDFileHead.AdapterListCount = parent->m_arAdapterList.GetSize();
  24.         
  25.         savefile.Write(&m_stDFileHead,sizeof(DeviceListFileHeadStruct));
  26.                 //Type List
  27.                 for (int i=0; i<parent->m_arTypeList.GetSize(); i++)
  28.                 {
  29.                         pTypeStruct = &parent->m_arTypeList.GetAt(i);
  30.                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
  31.                 }

  32.                 //Operation List
  33.                 for (i=0; i<parent->m_arOperationList.GetSize(); i++)
  34.                 {
  35.                         pTypeStruct = &parent->m_arOperationList.GetAt(i);
  36.                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
  37.                 }

  38.                 //Size List
  39.                 for (i=0; i<parent->m_arSizeList.GetSize(); i++)
  40.                 {
  41.                         pTypeStruct = &parent->m_arSizeList.GetAt(i);
  42.                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
  43.                 }

  44.                 //Pin List
  45.                 for (i=0; i<parent->m_arPinList.GetSize(); i++)
  46.                 {
  47.                         pTypeStruct = &parent->m_arPinList.GetAt(i);
  48.                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
  49.                 }

  50.                 //DataWidth List
  51.                 for (i=0; i<parent->m_arDataWidthList.GetSize(); i++)
  52.                 {
  53.                         pTypeStruct = &parent->m_arDataWidthList.GetAt(i);
  54.                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
  55.                 }

  56.                 //Package List
  57.                 for (i=0; i<parent->m_arPackageList.GetSize(); i++)
  58.                 {
  59.                         pTypeStruct = &parent->m_arPackageList.GetAt(i);
  60.                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
  61.                 }
  62.                
  63.                 //VCC List
  64.                 for (i=0; i<parent->m_arVCCList.GetSize(); i++)
  65.                 {
  66.                         pTypeStruct1 = &parent->m_arVCCList.GetAt(i);
  67.                         savefile.Write(pTypeStruct1,sizeof(TypeStruct1));
  68.                 }

  69.                 //VPP List
  70.                 for (i=0; i<parent->m_arVPPList.GetSize(); i++)
  71.                 {
  72.                         pTypeStruct1 = &parent->m_arVPPList.GetAt(i);
  73.                         savefile.Write(pTypeStruct1,sizeof(TypeStruct1));
  74.                 }

  75.                 //Adapter List
  76.                 for (i=0; i<parent->m_arAdapterList.GetSize(); i++)
  77.                 {
  78.                         pTypeStruct = &parent->m_arAdapterList.GetAt(i);
  79.                         savefile.Write(pTypeStruct,sizeof(TypeStruct));
  80.                 }

  81.                 //Device List
  82.                 for (i=0; i<parent->m_arDeviceList.GetSize(); i++)
  83.                 {
  84.                         m_stDFile = parent->m_arDeviceList.GetAt(i);
  85.                         savefile.Write(&m_stDFile,sizeof(DeviceListFileStruct));
  86.                 }
  87.                 savefile.Close();
  88.         parent->SetAppLog("保存完成");
  89.         }        
  90.         else
  91.         {
  92.                 parent->SetAppLog("保存失败");
  93.         }
  94.         
  95.         CDialog::OnOK();
  96. }
复制代码
基本就是不停的循环,不停的写盘。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
沙发
发表于 2017-10-19 09:26:18 | 只看该作者
感谢分享,不错的编程器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-26 03:45 , 耗时 0.084906 秒, 20 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表