123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529 |
- // DlgSelectDev.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "IDE.h"
- #include "DlgSelectDev.h"
- #include ".\dlgselectdev.h"
- #include "MainFrm.h"
- #include "Serial.h"
- #include "Network.h"
- #include "Wizard.h"
- #include "DlgDevice.h"
- #include "DlgComPort.h"
- // CDlgSelectDev 对话框
- IMPLEMENT_DYNAMIC(CDlgSelectDev, CDialog)
- CDlgSelectDev::CDlgSelectDev(CWnd* pParent /*=NULL*/)
- : CDialog(CDlgSelectDev::IDD, pParent)
- {
- }
- CDlgSelectDev::~CDlgSelectDev()
- {
- }
- void CDlgSelectDev::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_TREE_DEVICE, m_wndTree);
- }
- BEGIN_MESSAGE_MAP(CDlgSelectDev, CDialog)
- ON_BN_CLICKED(IDC_BTN_CANCEL, OnBnClickedBtnCancel)
- ON_BN_CLICKED(IDC_BTN_CONFIRM, OnBnClickedBtnConfirm)
- ON_BN_CLICKED(IDC_BTN_DEV_ADD, OnBnClickedBtnDevAdd)
- ON_BN_CLICKED(IDC_BTN_DEV_EDIT, OnBnClickedBtnDevEdit)
- ON_BN_CLICKED(IDC_BTN_DEV_DEL, OnBnClickedBtnDevDel)
- ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_DEVICE, OnTvnSelchangedTreeDevice)
- ON_NOTIFY(NM_DBLCLK, IDC_TREE_DEVICE, OnNMDblclkTreeDevice)
- END_MESSAGE_MAP()
- // CDlgSelectDev 消息处理程序
- BOOL CDlgSelectDev::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // TODO: 在此添加额外的初始化
- InitTreeInfo();
- MyExpandTree( m_wndTree.GetRootItem() );
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
- void CDlgSelectDev::MyExpandTree(HTREEITEM hTreeItem)
- {
- if(!m_wndTree.ItemHasChildren(hTreeItem))
- {
- return;
- }
- HTREEITEM hNextItem = m_wndTree.GetChildItem(hTreeItem);
- while (hNextItem != NULL)
- {
- MyExpandTree(hNextItem);
- hNextItem = m_wndTree.GetNextItem(hNextItem, TVGN_NEXT);
- }
- m_wndTree.Expand(hTreeItem,TVE_EXPAND);
- }
- void CDlgSelectDev::InitTreeInfo(void)
- {
- m_wndTree.ModifyStyle(0, TVS_HASBUTTONS | TVS_LINESATROOT
- | TVS_HASLINES | TVS_DISABLEDRAGDROP
- | TVS_SHOWSELALWAYS);
- m_wndTree.DeleteAllItems();
- m_wndTree.SetItemHeight(20);
- m_wndImageList.DeleteImageList();
- m_wndImageList.Create(IDB_LEFT, 16, 1, RGB(255, 0, 255));
- m_wndTree.SetImageList(&m_wndImageList, LVSIL_NORMAL);
- //插入串口和设备
- HTREEITEM hRoot = m_wndTree.InsertItem(g_strAllDev, 0, 0);
- int nComportSize = pDevicesManager->m_channels.GetSize();
- for (int i = 0; i < nComportSize; i++)
- {
- CChannel* pComport = pDevicesManager->m_channels[i];
- if( pComport->m_nCommunicateType == 1 )
- {
- m_hSerialGroup[i] = m_wndTree.InsertItem(g_strEthernet,5,5,hRoot);
- }
- else
- {
- m_hSerialGroup[i] = m_wndTree.InsertItem(pComport->m_strName,5,5,hRoot);
- }
- int nDeviceSize = pComport->m_Devices.GetSize();
- for (int j = 0; j < nDeviceSize; j++)
- {
- CDevice* pDev = pComport->m_Devices[j];
- m_hSerialDev[i][j] = m_wndTree.InsertItem(pDev->m_strName,4,4,m_hSerialGroup[i]);
- }
- }
- }
- void CDlgSelectDev::ShowDevProperty(HTREEITEM hSelectedItem)
- {
- #if 0
- CString strOldUid, strNewUid;
- CMainFrame *pMainFrm=(CMainFrame*)AfxGetApp()->m_pMainWnd;
- int i, j;
- int nChannelIndex = -1, nDeviceIndex = -1;
- int nChannelSize = pDevicesManager->m_channels.GetSize();
- // 串口设备属性设置
- for (i = 0; i < nChannelSize; i++)
- {
- if( nChannelIndex != -1 && nDeviceIndex != -1 ) break;
- int nDeviceSize = pDevicesManager->m_channels[i]->m_Devices.GetSize();
- for( j = 0; j < nDeviceSize; j++)
- {
- if (m_hSerialDev[i][j]==hSelectedItem)
- {
- nChannelIndex = i;
- nDeviceIndex = j;
- break;
- }
- if( m_hNetworkDev[j] == hSelectedItem &&
- pDevicesManager->m_channels[i]->m_nCommunicateType == 1 )
- {
- nChannelIndex = i;
- nDeviceIndex = j;
- break;
- }
- }
- }
- CChannel* pChannel = pDevicesManager->m_channels[nChannelIndex];
- CDevice* pDev = pChannel->m_Devices[nDeviceIndex];
- //CSerial* pSerial = (CSerial *)pChannel;
- CNetwork *pNetwork = (CNetwork *)pChannel;
- CWizard MyWizard(g_strMywizard,this,1);
- // 通信方式
- pMainFrm->m_wndDevice.m_nCommuniteType = pChannel->m_nCommunicateType;
- // 设备驱动名称
- pMainFrm->m_wndDevice.m_strDevDriveName = pDev->m_strDevDriveName;
- // 设备厂家名称
- pMainFrm->m_wndDevice.m_strDevFactoryName = pDev->m_strDevFactoryName;
- // 设备型号
- pMainFrm->m_wndDevice.m_strDevTypeName = pDev->m_strType;
- // 通信协议(例:Modbus rtu, modbus ascii, modbus tcp)
- pMainFrm->m_wndDevice.m_nProtocolType = pDev->m_nProtocolType;
- // 协议驱动动态库名称
- pMainFrm->m_wndDevice.m_strProtocolName = pDev->m_strProtocolName;
- // 是否为采集设备
- pMainFrm->m_wndDevice.m_nCollectDev = pDev->m_nIsCollectDev;
- // 是否启用设备
- pMainFrm->m_wndDevice.m_nDevEnable = (int)pDev->m_bUsed;
- // 设备UID
- pMainFrm->m_wndComport.m_strUID = pDev->m_strUID;
- // 设备名称
- pMainFrm->m_wndComport.m_strDevName = pDev->m_strName;
- // 设备所属区域
- pMainFrm->m_wndComport.m_strDevArea = pDev->m_strDevArea;
- // 通讯超时
- pMainFrm->m_wndComport.m_nTimeout = pDev->m_nTimeout;
- // 设备地址
- pMainFrm->m_wndComport.m_nDevAddr = (int)pDev->m_Address;
- // 串行端口
- pMainFrm->m_wndComport.m_nCommPort = atoi(pSerial->m_strPort.Mid(3));
- // 数据位
- pMainFrm->m_wndComport.m_nDataBit = pSerial->m_nByteSize;
- // 波特率
- pMainFrm->m_wndComport.m_nRate = pSerial->m_nBaudRate;
- // 停止位
- pMainFrm->m_wndComport.m_nStopBit = pSerial->m_nStopBits;
- // 校验位
- pMainFrm->m_wndComport.m_nCheckCode = pSerial->m_nParity;
- if( pChannel->m_nCommunicateType == 1 )
- {
- // 设备IP
- pMainFrm->m_wndComport.m_nNetIP = htonl(inet_addr(pDev->m_strDevIP));
- // 通讯端口
- pMainFrm->m_wndComport.m_nNetPort = pDev->m_nNetPort;
- }
- pMainFrm->m_wndDevice.m_operation = CDlgDevice::EDIT;
- MyWizard.AddPage( &pMainFrm->m_wndDevice );
- MyWizard.AddPage( &pMainFrm->m_wndComport );
- MyWizard.SetWizardMode();
- MyWizard.SetActivePage( &pMainFrm->m_wndDevice );
- int nTmpChannelIndex = -1, nTmpDeviceIndex = -1;
- if( MyWizard.DoModal() == ID_WIZFINISH )
- {
- if( !pMainFrm->m_wndComport.m_strDevName.Compare("") )
- {
- MessageBox(g_strDevNumCannotBlank, g_strTip, MB_ICONINFORMATION);
- return;
- }
- else if( pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strName != pMainFrm->m_wndComport.m_strDevName )
- {
- if( pDevicesManager->FindDev(pMainFrm->m_wndComport.m_strDevName, nTmpChannelIndex, nTmpDeviceIndex) )
- {
- MessageBox(g_strDevNameInUse, g_strTip, MB_ICONINFORMATION);
- return;
- }
- }
- if( pMainFrm->m_wndDevice.m_nCommuniteType == 0 )
- {
- CString strName;
- strName.Format("COM%d", pMainFrm->m_wndComport.m_nCommPort);
- //TRACE("串口名称=%s\r\n", pDevicesManager->m_channels[nChannelIndex]->m_strName);
- if( pDevicesManager->m_channels[nChannelIndex]->m_strName.Compare("") &&
- pDevicesManager->m_channels[nChannelIndex]->m_strName != strName )
- {
- int nIndex;
- nIndex = pDevicesManager->FindCommPort(strName);
- if( nIndex == -1 )
- {
- if( pMainFrm->FinishedAddDevice() == 1 )
- {
- DeleteDevInfo((char *)(LPCTSTR)pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strUID);
- pDevicesManager->m_channels[nChannelIndex]->m_Devices.RemoveAt(nDeviceIndex);
- //InitTreeInfo();
- }
-
- return;
- }
- else
- {
- if( pDevicesManager->FindCommPort(strName, pMainFrm->m_wndComport.m_nDevAddr, nTmpChannelIndex, nTmpDeviceIndex) )
- {
- MessageBox(g_strSerialPortInUse, g_strTip, MB_ICONINFORMATION);
- return;
- }
- if( pDevicesManager->FindDev(strName, nTmpChannelIndex, nTmpDeviceIndex) )
- {
- MessageBox(g_strDevNameInUse, g_strTip, MB_ICONINFORMATION);
- return;
- }
- //nChannelIndex = nIndex;
- if( pMainFrm->FinishedAddDevice() == 1 )
- {
- DeleteDevInfo((char *)(LPCTSTR)pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strUID);
- pDevicesManager->m_channels[nChannelIndex]->m_Devices.RemoveAt(nDeviceIndex);
- //InitTreeInfo();
- }
-
- Invalidate(FALSE);
- return;
- //nDeviceIndex = pDevicesManager->m_channels[nChannelIndex]->m_Devices.GetSize();
- }
- }
- else
- {
- if( pDevicesManager->FindDev(strName, nTmpChannelIndex, nTmpDeviceIndex) )
- {
- MessageBox(g_strDevNameInUse, g_strTip, MB_ICONINFORMATION);
- return;
- }
- }
- }
- else
- {
- CString strIP = inet_ntoa(*(struct in_addr *)&pMainFrm->m_wndComport.m_nNetIP);
- if( pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strDevIP != strIP )
- {
- if( pDevicesManager->FindDev(strIP, pMainFrm->m_wndComport.m_nNetPort, nTmpChannelIndex, nTmpDeviceIndex) )
- {
- MessageBox(g_strIPComoccupy, g_strTip, MB_ICONINFORMATION);
- return;
- }
- }
- }
- // 通信方式
- pDevicesManager->m_channels[nChannelIndex]->m_nCommunicateType = pMainFrm->m_wndDevice.m_nCommuniteType;
- // 设备驱动名称
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strDevDriveName = pMainFrm->m_wndDevice.m_strDevDriveName;
- // 设备厂家名称
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strDevFactoryName = pMainFrm->m_wndDevice.m_strDevFactoryName;
- // 设备型号
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strType = pMainFrm->m_wndDevice.m_strDevTypeName;
- // 通信协议(例:Modbus rtu, modbus ascii, modbus tcp)
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_nProtocolType = pMainFrm->m_wndDevice.m_nProtocolType;
- // 协议驱动动态库名称
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strProtocolName = pMainFrm->m_wndDevice.m_strProtocolName;
- // 是否为采集设备
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_nIsCollectDev = pMainFrm->m_wndDevice.m_nCollectDev;
- // 是否启用设备
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_bUsed = (BOOL)pMainFrm->m_wndDevice.m_nDevEnable;
- // 设备UID
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strUID = pMainFrm->m_wndComport.m_strUID;
- strNewUid = pMainFrm->m_wndComport.m_strUID;
- // 设备名称
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strName = pMainFrm->m_wndComport.m_strDevName;
- // 设备所属区域
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strDevArea = pMainFrm->m_wndComport.m_strDevArea;
- // 通讯超时
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_nTimeout = pMainFrm->m_wndComport.m_nTimeout;
- // 设备地址
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_Address = (BYTE)pMainFrm->m_wndComport.m_nDevAddr;
- int nIP = htonl(pMainFrm->m_wndComport.m_nNetIP);
- if( pMainFrm->m_wndDevice.m_nCommuniteType == 0 )
- {
- pDevicesManager->m_channels[nChannelIndex]->m_strName.Format("COM%d", pMainFrm->m_wndComport.m_nCommPort);
- // 串行端口
- pDevicesManager->m_channels[nChannelIndex]->m_strPort.Format("COM%d", pMainFrm->m_wndComport.m_nCommPort);
- // 数据位
- pDevicesManager->m_channels[nChannelIndex]->m_nByteSize = pMainFrm->m_wndComport.m_nDataBit;
- // 波特率
- pDevicesManager->m_channels[nChannelIndex]->m_nBaudRate = pMainFrm->m_wndComport.m_nRate;
- // 停止位
- pDevicesManager->m_channels[nChannelIndex]->m_nStopBits = pMainFrm->m_wndComport.m_nStopBit;
- // 校验位
- pDevicesManager->m_channels[nChannelIndex]->m_nParity = pMainFrm->m_wndComport.m_nCheckCode;
- }
- else if( pMainFrm->m_wndComport.m_nCommunicateMode == 1 )
- {
- // 设备IP
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strDevIP = inet_ntoa(*(struct in_addr *)&nIP);
- // 通讯端口
- pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_nNetPort = pMainFrm->m_wndComport.m_nNetPort;
- }
- CHAR szDevTypeID[MAX_ID + 1] = {0};
- // 获取设备类型ID
- GetDevTypeID( (char *)(LPCTSTR)pMainFrm->m_wndDevice.m_strDevTypeName, szDevTypeID );
- // 修改设备信息
- //EditDevInfo( (char *)(LPCTSTR)strOldUid,
- // (char *)(LPCTSTR)strNewUid,
- // pMainFrm->m_wndComport.m_nCommPort,
- // pMainFrm->m_wndComport.m_nDevAddr,
- // (char *)(LPCTSTR)pMainFrm->m_wndComport.m_strDevName,
- // atoi(szDevTypeID),
- // pMainFrm->m_wndComport.m_nRate,
- // pMainFrm->m_wndComport.m_nDataBit,
- // pMainFrm->m_wndComport.m_nStopBit,
- // pMainFrm->m_wndComport.m_nCheckCode,
- // 0,
- // inet_ntoa(*(struct in_addr *)&nIP),
- // pMainFrm->m_wndComport.m_nNetPort,
- // pMainFrm->m_wndComport.m_nCommunicateMode,
- // pMainFrm->m_wndDevice.m_nCollectDev,
- // pMainFrm->m_wndDevice.m_nProtocolType,
- // pMainFrm->m_wndComport.m_nTimeout,
- // pMainFrm->m_wndDevice.m_nDevEnable,
- // (char *)(LPCTSTR)pMainFrm->m_wndDevice.m_strProtocolName,
- // (char *)(LPCTSTR)pMainFrm->m_wndComport.m_strDevArea);
- }
- pMainFrm->m_wndTree.SetItemText(pMainFrm->m_hSerialDev[nChannelIndex][nDeviceIndex], pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strName);
- m_wndTree.SetItemText(hSelectedItem, pDevicesManager->m_channels[nChannelIndex]->m_Devices[nDeviceIndex]->m_strName);
- Invalidate(FALSE);
- #endif
- }
- void CDlgSelectDev::DeleteDev()
- {
- CMainFrame *pMainFrm=(CMainFrame*)AfxGetApp()->m_pMainWnd;
- int i, j;
- CString strMessage, strSelect;
- HTREEITEM hSelectedItem = m_wndTree.GetSelectedItem();
- strSelect = m_wndTree.GetItemText( hSelectedItem );
- int nChannelNo = -1, nDeviceNo = -1;
- int nChannelSize = pDevicesManager->m_channels.GetSize();
- // 串口设备属性设置
- for (i = 0; i < nChannelSize; i++)
- {
- if( nChannelNo != -1 && nDeviceNo != -1 ) break;
- int nDeviceSize = pDevicesManager->m_channels[i]->m_Devices.GetSize();
- for( j = 0; j < nDeviceSize; j++)
- {
- if (m_hSerialDev[i][j]==hSelectedItem)
- {
- nChannelNo = i;
- nDeviceNo = j;
- break;
- }
- if( m_hNetworkDev[j] == hSelectedItem &&
- pDevicesManager->m_channels[i]->m_nCommunicateType == 1 )
- {
- nChannelNo = i;
- nDeviceNo = j;
- break;
- }
- }
- }
- CChannel* pChannel = pDevicesManager->m_channels[nChannelNo];
- CDevice* pDev = pChannel->m_Devices[nDeviceNo];
- strMessage.Format(g_strDelDev,pDev->m_strName);
- if (MessageBox(strMessage,g_strConfirm,MB_YESNO|MB_ICONQUESTION) == IDNO) return;
- m_wndTree.DeleteItem(hSelectedItem);
- if( pChannel->m_nCommunicateType == 0 )
- {
- for( j = nDeviceNo; j < MAX_DEVICE_NUM; j++ )
- {
- m_hSerialDev[nChannelNo][j] = m_hSerialDev[nChannelNo][j+1];
- }
- }
- else if( pChannel->m_nCommunicateType = 1 )
- {
- for( j = nDeviceNo; j < MAX_DEVICE_NUM; j++ )
- {
- m_hNetworkDev[j] = m_hNetworkDev[j+1];
- }
- }
- CDBInterface::GetInstancePtr()->DeleteDevInfo( (char *)(LPCTSTR)pChannel->m_Devices[nDeviceNo]->m_strUID );
- delete pChannel->m_Devices[nDeviceNo];
- pChannel->m_Devices.RemoveAt(nDeviceNo);
- pMainFrm->InitTreeInfo();
- }
- void CDlgSelectDev::OnBnClickedBtnCancel()
- {
- // TODO: 在此添加控件通知处理程序代码
- OnCancel();
- }
- void CDlgSelectDev::OnBnClickedBtnConfirm()
- {
- // TODO: 在此添加控件通知处理程序代码
- // 选择设备完成
- OnOK();
- }
- void CDlgSelectDev::OnBnClickedBtnDevAdd()
- {
- // TODO: 在此添加控件通知处理程序代码
- CMainFrame *pMainFrm=(CMainFrame*)AfxGetApp()->m_pMainWnd;
- pMainFrm->AddDevice();
- InitTreeInfo();
- }
- void CDlgSelectDev::OnBnClickedBtnDevEdit()
- {
- // TODO: 在此添加控件通知处理程序代码
- HTREEITEM hSelectedItem = m_wndTree.GetSelectedItem();
- // 设备属性设置
- ShowDevProperty(hSelectedItem);
- }
- void CDlgSelectDev::OnBnClickedBtnDevDel()
- {
- // TODO: 在此添加控件通知处理程序代码
- DeleteDev();
- }
- void CDlgSelectDev::SelChangedTreeDeviceFolder(HTREEITEM hItemSelect)
- {
- m_strDevName = m_wndTree.GetItemText( hItemSelect );
- HTREEITEM hItemParent = m_wndTree.GetParentItem( hItemSelect );
- if( hItemParent != NULL )
- {
- hItemParent = m_wndTree.GetParentItem( hItemParent );
- if( hItemParent != NULL )
- {
- GetDlgItem(IDC_BTN_CONFIRM)->EnableWindow(TRUE);
- }
- else
- {
- GetDlgItem(IDC_BTN_CONFIRM)->EnableWindow(FALSE);
- return;
- }
- }
- else
- {
- GetDlgItem(IDC_BTN_CONFIRM)->EnableWindow(FALSE);
- return;
- }
- }
- void CDlgSelectDev::OnTvnSelchangedTreeDevice(NMHDR *pNMHDR, LRESULT *pResult)
- {
- LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
- // TODO: 在此添加控件通知处理程序代码
- HTREEITEM hItemSelect = pNMTreeView->itemNew.hItem;
- SelChangedTreeDeviceFolder( hItemSelect );
- *pResult = 0;
- }
- void CDlgSelectDev::OnNMDblclkTreeDevice(NMHDR *pNMHDR, LRESULT *pResult)
- {
- // TODO: 在此添加控件通知处理程序代码
- int i;
- HTREEITEM hSelectedItem = m_wndTree.GetSelectedItem();
- for (i = 0; i < MAX_SERIAL_NUM; i++)
- {
- for( int j = 0; j < MAX_DEVICE_NUM; j++)
- {
- if (m_hSerialDev[i][j]==hSelectedItem)
- {
- OnOK();
- return;
- }
- }
- }
- *pResult = 0;
- }
|