📄 thermo.c
字号:
itoa(gwDasChl, szBuffer, 10);
SendDlgItemMessage(hDlg, IDC_DASCHL, EM_REPLACESEL, 0,
(LPARAM)((LPSTR)szBuffer));
// -----------------------------
// Initialize EXP Channel Edit
// -----------------------------
itoa(gwExpChl, szBuffer, 10);
SendDlgItemMessage(hDlg, IDC_EXPCHL, EM_REPLACESEL, 0,
(LPARAM)((LPSTR)szBuffer));
//
// initialize Temperature Scale Combobox
//
for (i = 0; i < 4; i ++)
SendDlgItemMessage(hDlg, IDC_SCALE, CB_ADDSTRING, 0,
(LPARAM)((LPSTR)(szScale[i])));
SendDlgItemMessage(hDlg, IDC_SCALE, CB_SELECTSTRING, (WPARAM)(-1),
(LPARAM)((LPSTR)(szScale[gwScale])));
//
// initialize burn test Combobox
//
SendDlgItemMessage(hDlg, IDC_CMBBURNTEST, CB_ADDSTRING, 0,
(LPARAM)("Disable"));
SendDlgItemMessage(hDlg, IDC_CMBBURNTEST, CB_ADDSTRING, 0,
(LPARAM)("888888"));
SendDlgItemMessage(hDlg, IDC_CMBBURNTEST, CB_ADDSTRING, 0,
(LPARAM)("-888888"));
SendDlgItemMessage(hDlg, IDC_CMBBURNTEST, CB_ADDSTRING, 0,
(LPARAM)("Max Value"));
SendDlgItemMessage(hDlg, IDC_CMBBURNTEST, CB_ADDSTRING, 0,
(LPARAM)("Min Value"));
// first : 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(hMainWnd,(LPCSTR)szErrMsg,"Driver Message",MB_OK);
return 0;
}
// second: get device features
ptDevFeatures.buffer = (LPDEVFEATURES)&DevFeatures;
ptDevFeatures.size = sizeof(DEVFEATURES);
if ((ErrCde = DRV_DeviceGetFeatures(DriverHandle,
(LPT_DeviceGetFeatures)&ptDevFeatures)) != SUCCESS)
{
DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
MessageBox(hMainWnd,(LPCSTR)szErrMsg,"Driver Message",MB_OK);
DRV_DeviceClose((LONG far *)&DriverHandle);
return 0;
}
// third: initialize Input Range List Combobox with device features
if (DevFeatures.usNumGain != 0)
{
EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), TRUE);
SendDlgItemMessage(hDlg, IDC_INPRANGE, CB_RESETCONTENT,
0, (LPARAM)((LPSTR)0));
for (i = 0; i < (int)DevFeatures.usNumGain; i ++)
SendDlgItemMessage(hDlg, IDC_INPRANGE, CB_ADDSTRING, 0,
(LPARAM)((LPSTR)(DevFeatures.glGainList[i].szGainStr)));
SendDlgItemMessage(hDlg, IDC_INPRANGE,
CB_SELECTSTRING, (WPARAM)(-1),
(LPARAM)((LPSTR)(DevFeatures.glGainList[gwGain].szGainStr)));
}
else
{
EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), FALSE);
SendDlgItemMessage(hDlg, IDC_INPRANGE, CB_RESETCONTENT,
0, (LPARAM)((LPSTR)0));
}
// get the burn teset property
ulLength = sizeof(ulProperty);
ErrCde = DRV_DeviceGetProperty(DriverHandle, CFG_BURNTEST, ulProperty, &ulLength);
if (ErrCde == InvalidInputParam){
ErrCde = DRV_DeviceGetProperty(DriverHandle, CFG_BURNTEST, ulProperty, &ulLength);
}
if (ErrCde == FunctionNotSupported) {
bBurnTestSupport = FALSE;
EnableWindow(GetDlgItem(hDlg, IDC_CMBBURNTEST), FALSE);
}else if (ErrCde){
DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
MessageBox(hDlg,(LPCSTR)szErrMsg,"Driver Message",MB_OK);
DRV_DeviceClose((LONG far *)&DriverHandle);
return 0;
}else{
EnableWindow(GetDlgItem(hDlg, IDC_CMBBURNTEST), TRUE);
SendDlgItemMessage(hDlg, IDC_CMBBURNTEST,
CB_SETCURSEL, (WPARAM)ulProperty[gwDasChl],
(LPARAM)NULL);
bBurnTestSupport = TRUE;
gwBurnTest[gwDasChl] = ulProperty[gwDasChl];
}
// fourth: close device
DRV_DeviceClose((LONG far *)&DriverHandle);
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 DAS channel
//
if (SendDlgItemMessage(hDlg, IDC_DASCHL,
EM_GETMODIFY, 0, 0))
{
SendDlgItemMessage(hDlg, IDC_DASCHL,
WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
gwDasChl = atoi(szBuffer);
SendDlgItemMessage(hDlg, IDC_DASCHL,
EM_SETMODIFY, FALSE, 0) ;
}
//
// get EXP channel
//
if (SendDlgItemMessage(hDlg, IDC_EXPCHL,
EM_GETMODIFY, 0, 0))
{
SendDlgItemMessage(hDlg, IDC_EXPCHL,
WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
gwExpChl = atoi(szBuffer);
SendDlgItemMessage(hDlg, IDC_EXPCHL,
EM_SETMODIFY, FALSE, 0) ;
}
//
// get input range selection
//
if ((dwIndex = SendDlgItemMessage(hDlg, IDC_INPRANGE,
CB_GETCURSEL, 0, 0)) != CB_ERR)
gwGain = (WORD)dwIndex;
//
// get TC Type
//
if ((dwIndex = SendDlgItemMessage(hDlg, IDC_TCTYPE,
CB_GETCURSEL, 0, 0)) != CB_ERR)
gwType = (WORD)dwIndex;
//
// get Scale
//
if ((dwIndex = SendDlgItemMessage(hDlg, IDC_SCALE,
CB_GETCURSEL, 0, 0)) != CB_ERR)
gwScale = (WORD)dwIndex;
//
// get DAS channel
//
SendDlgItemMessage(hDlg, IDC_DASCHL,
WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
gwDasChl = atoi(szBuffer);
//
// get EXP channel
//
SendDlgItemMessage(hDlg, IDC_EXPCHL,
WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
gwExpChl = atoi(szBuffer);
//
// get Burn test enable state
//
if (bBurnTestSupport){
if ((dwIndex = SendDlgItemMessage(hDlg, IDC_CMBBURNTEST,
CB_GETCURSEL, 0, 0)) != CB_ERR)
gwBurnTest[gwDasChl] = (WORD)dwIndex;
}
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));
}
// -------------------------------------------------
// Initialize Input Range List Combobox, it needs to
// get device features for gain list
// -------------------------------------------------
// first : Open Device
// for non COM port or CAN device
if (gnNumOfSubdevices == 0)
{
ErrCde = DRV_DeviceOpen(
DeviceList[gwDevice].dwDeviceNum,
(LONG far *)&DriverHandle);
}
// for COM port or CAN device
else
{
ErrCde = DRV_DeviceOpen(
SubDeviceList[gwSubDevice].dwDeviceNum,
(LONG far *)&DriverHandle);
}
if (ErrCde != SUCCESS)
{
strcpy(szErrMsg,"Device open error !");
MessageBox(hMainWnd, (LPCSTR)szErrMsg,
"Driver Message", MB_OK);
return 0;
}
// second: get device features
ptDevFeatures.buffer = (LPDEVFEATURES)&DevFeatures;
ptDevFeatures.size = sizeof(DEVFEATURES);
if ((ErrCde = DRV_DeviceGetFeatures(DriverHandle,
(LPT_DeviceGetFeatures)&ptDevFeatures)) != SUCCESS)
{
DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
MessageBox(hMainWnd, (LPCSTR)szErrMsg, "Driver Message",
MB_OK);
DRV_DeviceClose((LONG far *)&DriverHandle);
return 0;
}
// third: initialize Range Combobox with device features
gwGain = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -