📄 freqout.c
字号:
DeviceList[gwDevice].dwDeviceNum,
(LONG far *)&DriverHandle);
else
ErrCde = DRV_DeviceOpen(
SubDeviceList[gwSubDevice].dwDeviceNum,
(LONG far *)&DriverHandle);
if (ErrCde != SUCCESS)
{
strcpy(szErrMsg,"Device open error !");
MessageBox(hDlg,(LPCSTR)szErrMsg,"Device Open",MB_OK);
return 0;
}
//
// get features
//
ptDevFeatures.buffer = (LPDEVFEATURES)&DevFeatures;
ptDevFeatures.size = sizeof(DEVFEATURES);
if ((ErrCde = DRV_DeviceGetFeatures(DriverHandle,
(LPT_DeviceGetFeatures)&ptDevFeatures)) != SUCCESS)
{
DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
MessageBox(hDlg,(LPCSTR)szErrMsg,"Driver Message",MB_OK);
DRV_DeviceClose((LONG far *)&DriverHandle);
return 0;
}
dwBordID = DevFeatures.dwBoardID;
if (dwBordID == BD_PCM3780){
usMaxFoutChan = 2;
}else{
usMaxFoutChan = 4;
}
DRV_DeviceClose(&DriverHandle);
//
// initialize frequency source
//
if (dwBordID != BD_PCM3780){
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"External clock"));
}
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"CLK N"));
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"FOUT N-1"));
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"10MHz"));
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"1MHz"));
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"100KHz"));
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"10KHz"));
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"1KHz"));
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_SETCURSEL,
gwFoutSrc,
//6,
0);
//
// Initialize Input Channel
//
for ( i = 0; i < usMaxFoutChan; i ++ )
{
_itoa( i, szBuffer, 10 );
SendDlgItemMessage(
hDlg,
IDC_ECHANNEL,
CB_ADDSTRING,
0,
( LPARAM )( ( LPSTR )szBuffer ) );
}
SendDlgItemMessage(hDlg,IDC_ECHANNEL,CB_SETCURSEL,gwChannel,(LPARAM)0);
//
// Initialize Divider Edit
//
for ( i = 1; i<= 16; i++ )
{
_itoa( i, szBuffer, 10 );
SendDlgItemMessage(
hDlg,
IDC_DIVIDER,
CB_ADDSTRING,
0,
( LPARAM )( ( LPSTR )szBuffer ) );
}
SendDlgItemMessage(hDlg,IDC_DIVIDER,CB_SETCURSEL,gwDividerIndex,(LPARAM)0);
//sprintf(szBuffer, "%d", gwDivider);
//SendDlgItemMessage(
// hDlg,
// IDC_DIVIDER,
// EM_REPLACESEL,
// 0,
// (LPARAM)((LPSTR)szBuffer));
return TRUE;
case WM_COMMAND :
switch (LOWORD(wParam))
{
case IDOK :
//
// get device selection
//
if ((dwIndex = SendDlgItemMessage(hDlg, IDC_DEVICE,
CB_GETCURSEL, 0, 0)) != CB_ERR)
gwDevice = (WORD)dwIndex;
//
// get sub-device selection
//
if ((dwIndex = SendDlgItemMessage(hDlg, IDC_MODULE,
CB_GETCURSEL, 0, 0)) != CB_ERR)
gwSubDevice = (WORD)dwIndex;
//
// get channel number
//
gwChannel =(USHORT) SendDlgItemMessage(
hDlg,
IDC_ECHANNEL,
CB_GETCURSEL,
0,
(LPARAM)0);
//
// get fout source
//
if ((gwFoutSrc = SendDlgItemMessage(hDlg, IDC_FOUTSRC,
CB_GETCURSEL, 0, 0)) != CB_ERR)
//
// get divider
//
gwDividerIndex = (USHORT)SendDlgItemMessage(hDlg, IDC_DIVIDER, CB_GETCURSEL, 0,0 ) ;
gwDivider =1 + gwDividerIndex;
EndDialog(hDlg, 0);
return TRUE;
case IDCANCEL :
EndDialog(hDlg, 0);
return TRUE;
case IDC_DEVICE :
//
// When device selection is changed, it needs to
// re-initialize sub-device combobox and input range
// combobox.
//
if (HIWORD(wParam) == CBN_SELCHANGE)
{
if ((dwIndex = SendDlgItemMessage(hDlg, IDC_DEVICE,
CB_GETCURSEL, 0, 0)) != CB_ERR)
gwDevice = (WORD)dwIndex;
else
return TRUE;
// ------------------------------------------------------
// Initialize Module Combobox for COM port or CAN devices
// ------------------------------------------------------
// check any device attached on this COM port or CAN
gnNumOfSubdevices = DeviceList[gwDevice].nNumOfSubdevices;
if (gnNumOfSubdevices > MAX_DEVICES)
gnNumOfSubdevices = MAX_DEVICES;
// retrieve the information of all installed devices
if (gnNumOfSubdevices != 0)
{
if ((ErrCde = DRV_DeviceGetSubList(
(DWORD)DeviceList[gwDevice].dwDeviceNum,
(DEVLIST far *)&SubDeviceList[0],
(SHORT)gnNumOfSubdevices,
(SHORT far *)&nOutEntries)) != (LONG)SUCCESS)
{
DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
MessageBox(hMainWnd, (LPCSTR)szErrMsg,
"Driver Message", MB_OK);
return TRUE;
}
// initialize the Module List Combobox with the
// retrieved information
EnableWindow(GetDlgItem(hDlg, IDC_MODULE), TRUE);
SendDlgItemMessage(hDlg, IDC_MODULE, CB_RESETCONTENT,
0, (LPARAM)((LPSTR)0));
for (i = 0; i < gnNumOfSubdevices; i++)
SendDlgItemMessage(hDlg, IDC_MODULE, CB_ADDSTRING, 0,
(LPARAM)((LPSTR)SubDeviceList[i].szDeviceName));
gwSubDevice = 0;
SendDlgItemMessage(hDlg, IDC_MODULE, CB_SETCURSEL,
(WPARAM)gwSubDevice, (LPARAM)0);
}
else
{
EnableWindow(GetDlgItem(hDlg, IDC_MODULE), FALSE);
SendDlgItemMessage(hDlg, IDC_MODULE, CB_RESETCONTENT,
0, (LPARAM)((LPSTR)0));
}
//
// Open Device
//
if (gnNumOfSubdevices == 0)
ErrCde = DRV_DeviceOpen(
DeviceList[gwDevice].dwDeviceNum,
(LONG far *)&DriverHandle);
else
ErrCde = DRV_DeviceOpen(
SubDeviceList[gwSubDevice].dwDeviceNum,
(LONG far *)&DriverHandle);
if (ErrCde != SUCCESS)
{
strcpy(szErrMsg,"Device open error !");
MessageBox(hDlg,(LPCSTR)szErrMsg,"Device Open",MB_OK);
return 0;
}
//
// get features
//
ptDevFeatures.buffer = (LPDEVFEATURES)&DevFeatures;
ptDevFeatures.size = sizeof(DEVFEATURES);
if ((ErrCde = DRV_DeviceGetFeatures(DriverHandle,
(LPT_DeviceGetFeatures)&ptDevFeatures)) != SUCCESS)
{
DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
MessageBox(hDlg,(LPCSTR)szErrMsg,"Driver Message",MB_OK);
DRV_DeviceClose((LONG far *)&DriverHandle);
return 0;
}
dwBordID = DevFeatures.dwBoardID;
if (dwBordID == BD_PCM3780){
usMaxFoutChan = 2;
}else{
usMaxFoutChan = 4;
}
DRV_DeviceClose(&DriverHandle);
//
// initialize frequency source
//
SendDlgItemMessage(hDlg, IDC_FOUTSRC,CB_RESETCONTENT,(WPARAM)0, (LPARAM)0);
if (dwBordID != BD_PCM3780){
SendDlgItemMessage(
hDlg,
IDC_FOUTSRC,
CB_ADDSTRING,
0,
(LPARAM)((LPSTR)"External clock"));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -