diff --git a/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.cpp b/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.cpp index c20d469..0e5644b 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.cpp @@ -13,10 +13,13 @@ CART_PCI8622::CART_PCI8622() m_AD_LSB_HALF=0.0; m_AD_LSB_RANGE=65536; m_InputRange=0; - m_StopedCapture=TRUE; - m_EnStartCapture=FALSE; + m_StopedSample=TRUE; + m_EnStartSample=FALSE; m_EnGetData=FALSE; - m_iCaptureMode=0; + m_iSampleMode=0; + m_iReadDataSize=100; + m_iFirstChannel=1; + m_iLastChannel=2; } CART_PCI8622::~CART_PCI8622() @@ -28,8 +31,11 @@ BOOL CART_PCI8622::Init() { BOOL rStatus(TRUE); #ifdef _RELEASE_FULL_VERSION - int DeviceLgcID(0); - m_hDevice = PCI8622_CreateDevice(DeviceLgcID); // 创建设备对象 + if(m_hDevice == INVALID_HANDLE_VALUE) + { + int DeviceLgcID(0); + m_hDevice = PCI8622_CreateDevice(DeviceLgcID); // 创建设备对象 + } if(m_hDevice == INVALID_HANDLE_VALUE) { rStatus=FALSE; @@ -42,9 +48,9 @@ BOOL CART_PCI8622::Exit() { BOOL rStatus(TRUE); #ifdef _RELEASE_FULL_VERSION - if (!m_StopedCapture) + if (!m_StopedSample) { - rStatus=StopCaptureData(); + rStatus=StopSampleData(); } rStatus=PCI8622_ReleaseDevice(m_hDevice); // 释放设备对象 m_hDevice=INVALID_HANDLE_VALUE; @@ -53,22 +59,25 @@ BOOL CART_PCI8622::Exit() } //======================================== -BOOL CART_PCI8622::SetCaptureMode(int _Mode) +BOOL CART_PCI8622::SetSamplePara(int _Mode,int _ReadDataSize) { BOOL rStatus(TRUE); + m_iSampleMode=_Mode; + m_iReadDataSize=_ReadDataSize; #ifdef _RELEASE_FULL_VERSION - m_iCaptureMode=_Mode; + memset(&ADBuffer, 0x00, sizeof(ADBuffer)); memset(&m_ADPara, 0x00, sizeof(m_ADPara)); // 将各项参数复位至确定值0(强烈建议) switch(_Mode) { - case E_ART_PCI8622_CAPTURE_DMA_SEQ: - case E_ART_PCI8622_CAPTURE_NPT_SEQ: + case E_ART_PCI8622_SAMPLE_DMA_SEQ: + case E_ART_PCI8622_SAMPLE_NPT_SEQ: + case E_ART_PCI8622_SAMPLE_HALF_SEQ: { // 预置硬件参数 m_ADPara.ADMode = PCI8622_ADMODE_SEQUENCE; // AD模式为连续模式 - m_ADPara.FirstChannel = 1; // 首通道 - m_ADPara.LastChannel = 2; // 末通道 - m_ADPara.Frequency = 10000; // 采样频率(Hz) + m_ADPara.FirstChannel = m_iFirstChannel; // 首通道 + m_ADPara.LastChannel = m_iLastChannel; // 末通道 + m_ADPara.Frequency = 25000; // 采样频率(Hz) m_ADPara.GroupInterval = 50; // 组间间隔(uS) m_ADPara.LoopsOfGroup = 1; // 组内各通道点数 m_ADPara.Gains = PCI8622_GAINS_1MULT; @@ -85,13 +94,14 @@ BOOL CART_PCI8622::SetCaptureMode(int _Mode) m_ADPara.TimeoutForNpt = 10; // 在非空方式下,设置超时时间为10秒钟(只在非空查询方式下有效) break; } - case E_ART_PCI8622_CAPTURE_NPT_TRIGCLK: - case E_ART_PCI8622_CAPTURE_DMA_TRIGCLK: + case E_ART_PCI8622_SAMPLE_NPT_TRIGCLK: + case E_ART_PCI8622_SAMPLE_DMA_TRIGCLK: + case E_ART_PCI8622_SAMPLE_HALF_TRIGCLK: { // 预置硬件参数 m_ADPara.ADMode = PCI8622_ADMODE_GROUP; // AD模式为连续模式 - m_ADPara.FirstChannel = 1; // 首通道 - m_ADPara.LastChannel = 2; // 末通道 + m_ADPara.FirstChannel = m_iFirstChannel; // 首通道 + m_ADPara.LastChannel = m_iLastChannel; // 末通道 m_ADPara.Frequency = 10000; // 采样频率(Hz) m_ADPara.GroupInterval = 50; // 组间间隔(uS) m_ADPara.LoopsOfGroup = 1; // 组内各通道点数 @@ -162,34 +172,50 @@ BOOL CART_PCI8622::SetCaptureMode(int _Mode) } switch(_Mode) { - case E_ART_PCI8622_CAPTURE_DMA: - case E_ART_PCI8622_CAPTURE_DMA_SEQ: - case E_ART_PCI8622_CAPTURE_DMA_TRIGCLK: + case E_ART_PCI8622_SAMPLE_DMA: + case E_ART_PCI8622_SAMPLE_DMA_SEQ: + case E_ART_PCI8622_SAMPLE_DMA_TRIGCLK: { m_hDmaEvent = PCI8622_CreateSystemEvent(); - if (!PCI8622_InitDeviceDmaAD(m_hDevice, m_hDmaEvent, &ADBuffer[0][0], 4096, SEGMENT_COUNT, HALF_SIZE_WORDS, &m_ADPara)) // 初始化硬件 + //if (!PCI8622_InitDeviceDmaAD(m_hDevice, m_hDmaEvent, &ADBuffer[0][0], 4096, SEGMENT_COUNT, HALF_SIZE_WORDS, &m_ADPara)) // 初始化硬件 + if (!PCI8622_InitDeviceDmaAD(m_hDevice, m_hDmaEvent, &ADBuffer[0][0], m_iReadDataSize, SEGMENT_COUNT, HALF_SIZE_WORDS, &m_ADPara)) // 初始化硬件 { rStatus=FALSE; - StopCaptureData(); + StopSampleData(); } break; } - case E_ART_PCI8622_CAPTURE_NPT: - case E_ART_PCI8622_CAPTURE_NPT_SEQ: - case E_ART_PCI8622_CAPTURE_NPT_TRIGCLK: + case E_ART_PCI8622_SAMPLE_NPT: + case E_ART_PCI8622_SAMPLE_NPT_SEQ: + case E_ART_PCI8622_SAMPLE_NPT_TRIGCLK: { if (!PCI8622_InitDeviceProAD(m_hDevice, &m_ADPara)) { rStatus=FALSE; - StopCaptureData(); + StopSampleData(); } break; } + case E_ART_PCI8622_SAMPLE_HALF: + case E_ART_PCI8622_SAMPLE_HALF_SEQ: + case E_ART_PCI8622_SAMPLE_HALF_TRIGCLK: + { + if (!PCI8622_InitDeviceProAD(m_hDevice, &m_ADPara)) + { + rStatus=FALSE; + StopSampleData(); + } + break; + } + default: + { + break; + } } if (rStatus) { - m_StopedCapture=FALSE; - m_EnStartCapture=TRUE; + m_StopedSample=FALSE; + m_EnStartSample=TRUE; } @@ -197,25 +223,81 @@ BOOL CART_PCI8622::SetCaptureMode(int _Mode) return rStatus; } //======================================== -BOOL CART_PCI8622::StartCaptureData() +BOOL CART_PCI8622::StartSampleData() { BOOL rStatus(TRUE); #ifdef _RELEASE_FULL_VERSION - rStatus=PCI8622_StartDeviceDmaAD(m_hDevice); // 启动设备 - m_StopedCapture=FALSE; + switch(m_iSampleMode) + { + case E_ART_PCI8622_SAMPLE_DMA: + case E_ART_PCI8622_SAMPLE_DMA_SEQ: + case E_ART_PCI8622_SAMPLE_DMA_TRIGCLK: + { + rStatus=PCI8622_StartDeviceDmaAD(m_hDevice); // 启动设备 + break; + } + case E_ART_PCI8622_SAMPLE_NPT: + case E_ART_PCI8622_SAMPLE_NPT_SEQ: + case E_ART_PCI8622_SAMPLE_NPT_TRIGCLK: + { + rStatus=PCI8622_StartDeviceProAD(m_hDevice); + break; + } + case E_ART_PCI8622_SAMPLE_HALF: + case E_ART_PCI8622_SAMPLE_HALF_SEQ: + case E_ART_PCI8622_SAMPLE_HALF_TRIGCLK: + { + rStatus=PCI8622_StartDeviceProAD(m_hDevice); + break; + } + default: + { + break; + } + } + m_StopedSample=FALSE; m_EnGetData=TRUE; #endif //_RELEASE_FULL_VERSION return rStatus; } //======================================== -BOOL CART_PCI8622::StopCaptureData() +BOOL CART_PCI8622::StopSampleData() { BOOL rStatus(TRUE); #ifdef _RELEASE_FULL_VERSION - rStatus=PCI8622_ReleaseDeviceDmaAD(m_hDevice); // 释放AD - rStatus=PCI8622_ReleaseSystemEvent(m_hDmaEvent); - m_EnStartCapture=FALSE; - m_StopedCapture=TRUE; + switch(m_iSampleMode) + { + case E_ART_PCI8622_SAMPLE_DMA: + case E_ART_PCI8622_SAMPLE_DMA_SEQ: + case E_ART_PCI8622_SAMPLE_DMA_TRIGCLK: + { + rStatus=PCI8622_ReleaseDeviceDmaAD(m_hDevice); // 释放AD + rStatus=PCI8622_ReleaseSystemEvent(m_hDmaEvent); + break; + } + case E_ART_PCI8622_SAMPLE_NPT: + case E_ART_PCI8622_SAMPLE_NPT_SEQ: + case E_ART_PCI8622_SAMPLE_NPT_TRIGCLK: + { + rStatus=PCI8622_ReleaseDeviceProAD(m_hDevice); // 释放AD + //rStatus=PCI8622_ReleaseDevice(m_hDevice); // 释放设备对象 + break; + } + case E_ART_PCI8622_SAMPLE_HALF: + case E_ART_PCI8622_SAMPLE_HALF_SEQ: + case E_ART_PCI8622_SAMPLE_HALF_TRIGCLK: + { + rStatus=PCI8622_ReleaseDeviceProAD(m_hDevice); // 释放AD + //rStatus=PCI8622_ReleaseDevice(m_hDevice); // 释放设备对象 + break; + } + default: + { + break; + } + } + m_EnStartSample=FALSE; + m_StopedSample=TRUE; m_EnGetData=FALSE; #endif //_RELEASE_FULL_VERSION return rStatus; @@ -233,69 +315,111 @@ BOOL CART_PCI8622::GetData(double (*_Data)[HALF_SIZE_WORDS],int* _DataNumber) WORD ADData(0); double dVolt(0); int Index(0); - switch(m_iCaptureMode) + switch(m_iSampleMode) { - case E_ART_PCI8622_CAPTURE_DMA: - case E_ART_PCI8622_CAPTURE_DMA_SEQ: - case E_ART_PCI8622_CAPTURE_DMA_TRIGCLK: + case E_ART_PCI8622_SAMPLE_DMA: + case E_ART_PCI8622_SAMPLE_DMA_SEQ: + case E_ART_PCI8622_SAMPLE_DMA_TRIGCLK: + { + PCI8622_STATUS_DMA DMAStatus; // DMA状态参数 + PCI8622_GetDevStatusDmaAD(m_hDevice, &DMAStatus); + bool bWait(true); + while(bWait) // 查询当前物理缓冲区数据是否已准备就绪 { - - bool bWait(true); - while(bWait) // 查询当前物理缓冲区数据是否已准备就绪 - { - if(WaitForSingleObject (m_hDmaEvent, 100)==WAIT_OBJECT_0) - bWait=false; // 等待DMA事件 - } - PCI8622_STATUS_DMA DMAStatus; // DMA状态参数 - if(!PCI8622_GetDevStatusDmaAD(m_hDevice, &DMAStatus)) - { - rStatus=FALSE; - StopCaptureData(); - } - if(DMAStatus.bBufferOverflow) - { - rStatus=FALSE; - } - - for(m_SegmentID=0; m_SegmentID(((m_AD_LSB_MAX/m_AD_LSB_RANGE) * ADData - m_AD_LSB_HALF)); - _Data[nADChannel][_DataNumber[nADChannel]]=dVolt; - _DataNumber[nADChannel]+=1; - nADChannel++; - if(nADChannel > m_ADPara.LastChannel) - { - nADChannel = m_ADPara.FirstChannel; - } - } - } - if(!PCI8622_SetDevStatusDmaAD(m_hDevice, m_SegmentID)) - { - rStatus=FALSE; - StopCaptureData(); - } - } - - break; + if(WaitForSingleObject (m_hDmaEvent, 100)==WAIT_OBJECT_0) + bWait=false; // 等待DMA事件 } - case E_ART_PCI8622_CAPTURE_NPT: - case E_ART_PCI8622_CAPTURE_NPT_SEQ: - case E_ART_PCI8622_CAPTURE_NPT_TRIGCLK: + if(!PCI8622_GetDevStatusDmaAD(m_hDevice, &DMAStatus)) + { + rStatus=FALSE; + StopSampleData(); + } + if(DMAStatus.bBufferOverflow) + { + rStatus=FALSE; + } + + for(m_SegmentID=0; m_SegmentID(((m_AD_LSB_MAX/m_AD_LSB_RANGE) * ADData - m_AD_LSB_HALF)); + _Data[nADChannel][_DataNumber[nADChannel]]=dVolt; + _DataNumber[nADChannel]+=1; + nADChannel++; + if(nADChannel > m_ADPara.LastChannel) + { + nADChannel = m_ADPara.FirstChannel; + } + } + } + if(!PCI8622_SetDevStatusDmaAD(m_hDevice, m_SegmentID)) + { + rStatus=FALSE; + StopSampleData(); + } + } + + break; + } + case E_ART_PCI8622_SAMPLE_NPT: + case E_ART_PCI8622_SAMPLE_NPT_SEQ: + case E_ART_PCI8622_SAMPLE_NPT_TRIGCLK: + { + m_SegmentID=0; + LONG nReadSizeWords = m_iReadDataSize; + LONG nRetSizeWords(0); + PCI8622_ReadDeviceProAD_Npt(m_hDevice, ADBuffer[m_SegmentID], nReadSizeWords, &nRetSizeWords); + nADChannel = m_ADPara.FirstChannel; + TRACE1("[PCI8622_ReadDeviceProAD_Npt] Retsize:%d.\r\n",nRetSizeWords); + for(Index=0; Index(((m_AD_LSB_MAX/m_AD_LSB_RANGE) * ADData - m_AD_LSB_HALF)); + _Data[nADChannel][_DataNumber[nADChannel]]=dVolt; + _DataNumber[nADChannel]+=1; + nADChannel++; + if(nADChannel > m_ADPara.LastChannel) + { + nADChannel = m_ADPara.FirstChannel; + } + } + break; + } + case E_ART_PCI8622_SAMPLE_HALF: + case E_ART_PCI8622_SAMPLE_HALF_SEQ: + case E_ART_PCI8622_SAMPLE_HALF_TRIGCLK: + { + PCI8622_STATUS_AD ADStatus; + LONG nReadSizeWords = 4096; + LONG nRetSizeWords(0); + m_SegmentID=0; + if(!PCI8622_GetDevStatusProAD(m_hDevice, &ADStatus)) + { + rStatus=FALSE; + StopSampleData(); + } + if(ADStatus.bHalf) + { + break; // 若板载FIFO存储器数据量达到半满以上,则退出状态查询,开始读取半满数据 + } + if(!PCI8622_ReadDeviceProAD_Half(m_hDevice, ADBuffer[m_SegmentID], nReadSizeWords, &nRetSizeWords)) + { + rStatus=FALSE; + StopSampleData(); + } + else { - m_SegmentID=0; - LONG nReadSizeWords = 4096; - LONG nRetSizeWords(0); - PCI8622_ReadDeviceProAD_Npt(m_hDevice, ADBuffer[0], nReadSizeWords, &nRetSizeWords); nADChannel = m_ADPara.FirstChannel; - TRACE1("[PCI8622_ReadDeviceProAD_Npt] Retsize:%d.\r\n",nRetSizeWords); - for(Index=0; Indexg_machine.s_machine_config.motion.m_TouchProbeEnable); m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_FootSwitchEnable); + m_ConfigList.SetItemText(iRow++,iCol,cStr); cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_JoyStickEnable); m_ConfigList.SetItemText(iRow++,iCol,cStr); cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_DebugOutputEnable); @@ -355,6 +363,10 @@ void CSetSo7MotionConfig::SaveDataValue() iRow++; cStr=m_ConfigList.GetItemText(iRow,iCol); cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_FootSwitchEnable=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); m_pSO7_Proto->g_machine.s_machine_config.motion.m_JoyStickEnable=atoi(cTemp); iRow++; cStr=m_ConfigList.GetItemText(iRow,iCol); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.cpp index 991b04c..6ee0799 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.cpp @@ -18,6 +18,8 @@ IMPLEMENT_DYNAMIC(CSo7_Art_PCI8622, CDialog) : CDialog(CSo7_Art_PCI8622::IDD, pParent) { m_MsgCnts=0; + m_iReadTimes=0; + m_iReadTimesCnts=0; } CSo7_Art_PCI8622::~CSo7_Art_PCI8622() @@ -68,7 +70,9 @@ BOOL CSo7_Art_PCI8622::OnInitDialog() pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } - + GetDlgItem(IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER)->SetWindowTextW(_T("4096")); + GetDlgItem(IDC_EDIT_ART_PCI8622_READ_TIMES)->SetWindowTextW(_T("1")); + ((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_DMATRIG))->SetCheck(TRUE); m_pART_PCI8622->Init(); return TRUE; // return TRUE unless you set the focus to a control @@ -76,14 +80,61 @@ BOOL CSo7_Art_PCI8622::OnInitDialog() void CSo7_Art_PCI8622::OnBnClickedButtonArtPci8622SetMode() { - m_pART_PCI8622->SetCaptureMode(E_ART_PCI8622_CAPTURE_NPT_TRIGCLK); + USES_CONVERSION; + CString csDataNumber(""); + GetDlgItem(IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER)->GetWindowText(csDataNumber); + const char* cDataNumber=T2A(csDataNumber); + int iDataNumber = atoi(cDataNumber); + int iMode(0); + if (((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_DMASEQ))->GetCheck()) + { + iMode=E_ART_PCI8622_SAMPLE_DMA_SEQ; + } + else if (((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_DMATRIG))->GetCheck()) + { + iMode=E_ART_PCI8622_SAMPLE_DMA_TRIGCLK; + } + else if (((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_NPTSEQ))->GetCheck()) + { + iMode=E_ART_PCI8622_SAMPLE_NPT_SEQ; + } + else if (((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_NPTTRIG))->GetCheck()) + { + iMode=E_ART_PCI8622_SAMPLE_NPT_TRIGCLK; + } + else if (((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_HALFSEQ))->GetCheck()) + { + iMode=E_ART_PCI8622_SAMPLE_HALF_SEQ; + } + else if (((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_HALFTRIG))->GetCheck()) + { + iMode=E_ART_PCI8622_SAMPLE_HALF_TRIGCLK; + } + BOOL BStatus=m_pART_PCI8622->SetSamplePara(iMode,iDataNumber); + if (!BStatus) + { + m_csMsg=_T("Failed to setup."); + OutputWithScroll(m_csMsg,m_edMSG); + m_pART_PCI8622->Exit(); + m_pART_PCI8622->Init(); + BStatus=m_pART_PCI8622->SetSamplePara(iMode,iDataNumber); + if (!BStatus) + { + m_csMsg=_T("Failed to setup."); + OutputWithScroll(m_csMsg,m_edMSG); + } + else + { + m_csMsg=_T("Setup successful."); + OutputWithScroll(m_csMsg,m_edMSG); + } + } } void CSo7_Art_PCI8622::OnBnClickedButtonArtPci8622ReadData() { - SetTimer(1,200,NULL); - //GetData(TRUE); + GetData(TRUE); } @@ -103,15 +154,38 @@ void CSo7_Art_PCI8622::OnBnClickedCancel() void CSo7_Art_PCI8622::OnBnClickedButtonArtPci8622Start() { - m_pART_PCI8622->StartCaptureData(); - + GetDlgItem(IDC_BUTTON_ART_PCI8622_START)->EnableWindow(FALSE); + USES_CONVERSION; + CString csReadTimes(""); + GetDlgItem(IDC_EDIT_ART_PCI8622_READ_TIMES)->GetWindowText(csReadTimes); + const char* cReadTimes=T2A(csReadTimes); + m_iReadTimes = atoi(cReadTimes); + + m_pART_PCI8622->Init(); + BOOL BStatus=m_pART_PCI8622->StartSampleData(); + if (!BStatus) + { + m_csMsg=_T("Failed to start."); + OutputWithScroll(m_csMsg,m_edMSG); + } + m_iReadTimesCnts=0; + if (m_iReadTimes>0) + { + SetTimer(1,200,NULL); + } } void CSo7_Art_PCI8622::OnBnClickedButtonArtPci8622Stop() { KillTimer(1); - m_pART_PCI8622->StopCaptureData(); + BOOL BStatus=m_pART_PCI8622->StopSampleData(); + if (!BStatus) + { + m_csMsg=_T("Failed to stop."); + OutputWithScroll(m_csMsg,m_edMSG); + } + GetDlgItem(IDC_BUTTON_ART_PCI8622_START)->EnableWindow(TRUE); } //=================================================== void CSo7_Art_PCI8622::GetData(BOOL _BShow) @@ -155,19 +229,21 @@ void CSo7_Art_PCI8622::OnTimer(UINT_PTR nIDEvent) { case 1: { - bool bExit(false); - if (bExit) + m_iReadTimesCnts++; + if (m_iReadTimesCnts>m_iReadTimes) { KillTimer(1); + m_pART_PCI8622->StopSampleData(); + GetDlgItem(IDC_BUTTON_ART_PCI8622_START)->EnableWindow(TRUE); + } + else + { + GetData(); } - GetData(); break; } - } - CDialog::OnTimer(nIDEvent); - } //===================================================================================== diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.h index a296756..a031367 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.h @@ -23,6 +23,8 @@ protected: CString m_csMsg; CEdit m_edMSG; int m_MsgCnts; + int m_iReadTimes; + int m_iReadTimesCnts; void GetData(BOOL _BShow=FALSE); void OutputWithScroll(const CString &strNewText,CEdit &edtOutput); public: diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h index 995ab1b..05918e4 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -597,6 +597,7 @@ #define IDC_RADIO_MOVE_TO_ABSOLUTE 1489 #define IDC_RADIO6 1490 #define IDC_RADIO_MOVE_TO_RELATIVE 1490 +#define IDC_RADIO_ART_PCI8622_MODE_HALFTRIG 1490 #define IDC_BUTTON_STATUS_MOVING_X 1493 #define IDC_BUTTON_STATUS_HOME_X 1494 #define IDC_BUTTON_STATUS_MOVING_Y 1495 @@ -899,6 +900,7 @@ #define IDC_RADIO2 1805 #define IDC_RADIO_READ_OUTPUT_PORT 1805 #define IDC_RADIO_SO7_MOVE_SPEED_GEAR2 1805 +#define IDC_RADIO_ART_PCI8622_MODE_NPTSEQ 1805 #define IDC_RADIO_MACHINE_TESASTARE 1806 #define IDC_RADIO_READ_OUTPUT_PORT2 1806 #define IDC_EDIT_MOVETO_DEG 1807 @@ -973,8 +975,13 @@ #define IDC_EDIT_ART_PCI8622_LOG 1846 #define IDC_EDIT_R1_CURRENT_POSITION 1847 #define IDC_BUTTON_ART_PCI8622_CLEAR_LOG 1847 -#define IDC_BUTTON_ART_PCI8622_START2 1848 #define IDC_BUTTON_ART_PCI8622_SET_MODE 1848 +#define IDC_RADIO_ART_PCI8622_MODE_DMASEQ 1849 +#define IDC_RADIO_ART_PCI8622_MODE_HALFSEQ 1850 +#define IDC_RADIO_ART_PCI8622_MODE_DMATRIG 1851 +#define IDC_RADIO_ART_PCI8622_MODE_NPTTRIG 1852 +#define IDC_EDIT_ART_PCI8622_READ_TIMES 1853 +#define IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER 1854 #define IDC_BUTTON_DIY_EXIT_BUTTON 32740 #define ID_EDIT_SO7_CONFIG_MOTION 32741 @@ -984,7 +991,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 191 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1848 +#define _APS_NEXT_CONTROL_VALUE 1854 #define _APS_NEXT_SYMED_VALUE 104 #endif #endif diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo index 6422e95..6ff4169 100644 Binary files a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo and b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo differ