查看完整版本: uuprog开发教程:芯片支持库维护6

liyf 发表于 2014-12-29 08:20:51

uuprog开发教程:芯片支持库维护6

芯片参数修改和添加差不多,只是修改后点一下修改按钮而已。测试没问题后都得点保存才能将支持库的信息修改。
这里图就不贴了,不清楚就看前一帖。下面是实现代码:
void CProgDeviceManage::OnDeviceModify()
{
      // TODO: Add your control notification handler code here
      CString temp;
      ZeroMemory(&m_stDFile, sizeof(DeviceListFileStruct));
//      ZeroMemory(&m_stDFileHead, sizeof(DeviceListFileHeadStruct));

      UpdateData(true);
      //device name
      if (m_sDeviceName.IsEmpty())
      {
                AfxMessageBox("芯片名称不能为空");
                return;
      }
      strcpy(m_stDFile.DeviceName,m_sDeviceName);
      //Device Type
      m_cDeviceType.GetWindowText(temp);
      if (temp.IsEmpty())
      {
                AfxMessageBox("芯片类型不能为空");
                return;
      }

      int index;
      CString tname;
//      m_cDeviceType.GetWindowText(temp);
      for (int i=0; i<parent->m_arTypeList.GetSize(); i++)
      {
                tname = parent->m_arTypeList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.DeviceType = parent->m_arTypeList.GetAt(index).TypeVal;

//      if (temp == "EPROM") m_stDFileHead.EpromCount += 1;
//      if (temp == "PROM") m_stDFileHead.PromCount += 1;
//      if (temp == "MPU") m_stDFileHead.MPUCount += 1;
//      if (temp == "PLD") m_stDFileHead.PLDCount += 1;

      m_stDFile.DeviceManuID = (DWORD)strtoul(m_sDeviceManuID, NULL, 16);
      m_stDFile.DeviceID = (DWORD)strtoul(m_sDeviceID, NULL, 16);
      m_stDFile.DeviceCheckCRC = (DWORD)strtoul(m_sDeviceCheckCRC, NULL, 16);
      
      m_cOperationID.GetWindowText(temp);
      for (i=0; i<parent->m_arOperationList.GetSize(); i++)
      {
                tname = parent->m_arOperationList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.OperationID = parent->m_arOperationList.GetAt(index).TypeVal;

      if (m_sDeviceManuName.IsEmpty())
      {
                AfxMessageBox("厂家名称不能为空");
                return;
      }
      strcpy(m_stDFile.DeviceManuName,m_sDeviceManuName);

      m_cDeviceSize.GetWindowText(temp);
      for (i=0; i<parent->m_arSizeList.GetSize(); i++)
      {
                tname = parent->m_arSizeList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.DeviceSize = parent->m_arSizeList.GetAt(index).TypeVal;

      m_cDeviceDataWidth.GetWindowText(temp);
      for (i=0; i<parent->m_arDataWidthList.GetSize(); i++)
      {
                tname = parent->m_arDataWidthList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.DeviceDataWidth = parent->m_arDataWidthList.GetAt(index).TypeVal;

      m_cDevicePackage.GetWindowText(temp);
      for (i=0; i<parent->m_arPackageList.GetSize(); i++)
      {
                tname = parent->m_arPackageList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.DevicePackage = parent->m_arPackageList.GetAt(index).TypeVal;

      m_cDevicePinCount.GetWindowText(temp);
      for (i=0; i<parent->m_arPinList.GetSize(); i++)
      {
                tname = parent->m_arPinList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.DevicePinCount = parent->m_arPinList.GetAt(index).TypeVal;

      m_cDeviceVCC.GetWindowText(temp);
      for (i=0; i<parent->m_arVCCList.GetSize(); i++)
      {
                tname = parent->m_arVCCList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.DeviceVCC = parent->m_arVCCList.GetAt(index).TypeVal;

      m_cDeviceVPP.GetWindowText(temp);
      for (i=0; i<parent->m_arVPPList.GetSize(); i++)
      {
                tname = parent->m_arVPPList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.DeviceVPP = parent->m_arVPPList.GetAt(index).TypeVal;

      m_cDeviceAdapter.GetWindowText(temp);
      for (i=0; i<parent->m_arAdapterList.GetSize(); i++)
      {
                tname = parent->m_arAdapterList.GetAt(i).TypeName;
                if (temp == tname)
                        index = i;
      }
      m_stDFile.DeviceAdapter = parent->m_arAdapterList.GetAt(index).TypeVal;
      strcpy(m_stDFile.Datasheet,m_sDeviceDatasheet);
      strcpy(m_stDFile.DeviceManuICO,m_sDeviceManuICO);
      strcpy(m_stDFile.DeviceICICO,m_sDeviceICICO);
      strcpy(m_stDFile.DeviceNote,m_sDeviceNote);

      int iDeviceSel;
      m_cDeviceList.GetText(m_cDeviceList.GetCurSel(),temp);
      for (i=0; i<parent->m_arDeviceList.GetSize(); i++)
      {
                if(temp == parent->m_arDeviceList.GetAt(i).DeviceName)
                        iDeviceSel = i;
      }
      parent->m_arDeviceList.SetAt(iDeviceSel,m_stDFile);
                AfxMessageBox("芯片信息已修改");
      
}还是那句话,跟一下就明白了。


快乐之星 发表于 2014-12-29 09:05:22

现在可以刷芯片的吗

liyf 发表于 2014-12-29 09:11:27

快乐之星 发表于 2014-12-29 09:05
现在可以刷芯片的吗

还没开放这个功能呢,请继续关注更新

zhuihai 发表于 2018-12-27 22:00:03

谢谢分享银子不够支持
页: [1]
查看完整版本: uuprog开发教程:芯片支持库维护6