/************************************************************************* ** ** Function : canClose_driver ** ** Description : Close the message and control channel ** Parameters : CAN_HANDLE inst - handle for CAN controller ** Returnvalue : ** *************************************************************************/ int __stdcall canClose_driver(CAN_HANDLE inst) { printf("CAN close \n"); canControlReset(hCanCtl); canChannelClose(hCanChn); canControlClose(hCanCtl); vciDeviceClose(hDevice); DeleteTimerQueueTimer(NULL,hTimerHandle,NULL); return 1; }
LRESULT CSocketSelectDlg::DeviceListInsert(VCIID vciid) { HANDLE hDevice; LRESULT lIndex; TCHAR szText[512]; VCIDEVICEINFO sInfo; lIndex = DeviceListSearch(vciid); if (lIndex == LB_ERR) { if (vciDeviceOpen(vciid, &hDevice) == VCI_OK) { if (vciDeviceGetInfo(hDevice, &sInfo) == VCI_OK) { wsprintf(szText, TEXT("%08X%08X - %s"), vciid.AsLuid.HighPart, vciid.AsLuid.LowPart, sInfo.Description); lIndex = SendItemMessage(IDC_DEVLIST, LB_ADDSTRING, 0, (LPARAM) szText); if (lIndex >= 0) { SendItemMessage(IDC_DEVLIST, LB_SETITEMDATA, lIndex, (LPARAM) hDevice); } else { vciDeviceClose(hDevice); } } else { vciDeviceClose(hDevice); } } } return( lIndex ); }
void CSocketSelectDlg::DeviceListUpdate( ) { LRESULT lCount; LRESULT lData; VCIDEVICEINFO sInfo; // // remove all unavailable devices from the device list // lCount = SendItemMessage(IDC_DEVLIST, LB_GETCOUNT, 0, 0); for (LRESULT lIndex = 0; lIndex < lCount; lIndex++) { lData = SendItemMessage(IDC_DEVLIST, LB_GETITEMDATA, lIndex, 0); if ((lData != LB_ERR) && (vciDeviceGetInfo((HANDLE) lData, &sInfo) != VCI_OK)) { vciDeviceClose((HANDLE) lData); SendItemMessage(IDC_DEVLIST, LB_DELETESTRING, lIndex, 0); } } // // The selection may change because the currently selected // item is deleted. // DeviceListSelect(); // // enumerate all devices // if (m_hDevEnu != NULL) { vciEnumDeviceReset(m_hDevEnu); while (vciEnumDeviceNext(m_hDevEnu, &sInfo) == VCI_OK) DeviceListInsert(sInfo.VciObjectId); } }
void CSocketSelectDlg::DeviceListClear( ) { LRESULT lCount; LRESULT lData; lCount = SendItemMessage(IDC_DEVLIST, LB_GETCOUNT, 0, 0); if (lCount != LB_ERR) { for (LRESULT lIndex = 0; lIndex < lCount; lIndex++) { lData = SendItemMessage(IDC_DEVLIST, LB_GETITEMDATA, lIndex, 0); if ((lData != 0) && (lData != LB_ERR)) { vciDeviceClose((HANDLE) lData); SendItemMessage(IDC_DEVLIST, LB_SETITEMDATA, lIndex, 0); } } } SendItemMessage(IDC_DEVLIST, LB_RESETCONTENT, 0, 0); m_hCurDev = INVALID_HANDLE_VALUE; }