⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdadint.c

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 C
📖 第 1 页 / 共 5 页
字号:

        case WM_COMMAND :
             switch (LOWORD(wParam))
             {
                case IDOK :
                case IDCANCEL :
                     EndDialog(hDlg, 0);
                     return TRUE;

                case IDC_CHL0 :
                case IDC_CHL1 :
                case IDC_CHL2 :
                case IDC_CHL3 :
                case IDC_CHL4 :
                case IDC_CHL5 :
                case IDC_CHL6 :
                case IDC_CHL7 :
                case IDC_CHL8 :
                case IDC_CHL9 :
                case IDC_CHL10 :
                case IDC_CHL11 :
                case IDC_CHL12 :
                case IDC_CHL13 :
                case IDC_CHL14 :
                case IDC_CHL15 :
                     if (HIWORD(wParam) == CBN_KILLFOCUS)
                     {
                         i = (int)SendDlgItemMessage(hDlg, LOWORD(wParam),
                             CB_GETCURSEL, 0, 0) ;
                         if (i != CB_ERR)
                             gwGain[((USHORT)LOWORD(wParam)) - IDC_CHL0] = i;
                     }
                     return TRUE;

             }
             break;
    }
    return FALSE ;
}

/***************************************************************************
    FUNCTION: CondListDlgProc(HWND, unsigned, WPARAM, LPARAM)

    PURPOSE:  Processes dialog box messages for condition list
****************************************************************************/

BOOL FTYPE CondListDlgProc(hDlg, message, wParam, lParam)
HWND hDlg;                                /* window handle                 */
unsigned message;                         /* type of message               */
WPARAM wParam;                            /* additional information        */
LPARAM lParam;                            /* additional information        */
{
    int  i, j;

    switch (message)
    {
        case WM_INITDIALOG :

             // Initialize condition/channel
             for (i = 0; i < 16; i ++)
                EnableWindow(GetDlgItem(hDlg, IDC_CONDCHL0 + i), FALSE);

             for(i = gwStartChl; i < (gwNumChl+gwStartChl) ; i ++)
                {
                  EnableWindow(GetDlgItem(hDlg, IDC_CONDCHL0 + i), TRUE);
                  for (j = 0; j < 5; j ++)
                     SendDlgItemMessage(hDlg, IDC_CONDCHL0+i, CB_ADDSTRING, 0,
                       (LPARAM)((LPSTR)szCondString[j]));

                  SendDlgItemMessage(hDlg, IDC_CONDCHL0+i, CB_SELECTSTRING,
                      (WPARAM)(-1),
                      (LPARAM)((LPSTR)(szCondString[gwCond[i]])));
                }

             return TRUE;

        case WM_COMMAND :
             switch (LOWORD(wParam))
             {
                case IDOK :
                case IDCANCEL :
                     EndDialog(hDlg, 0);
                     return TRUE;

                case IDC_CONDCHL0 :
                case IDC_CONDCHL1 :
                case IDC_CONDCHL2 :
                case IDC_CONDCHL3 :
                case IDC_CONDCHL4 :
                case IDC_CONDCHL5 :
                case IDC_CONDCHL6 :
                case IDC_CONDCHL7 :
                case IDC_CONDCHL8 :
                case IDC_CONDCHL9 :
                case IDC_CONDCHL10 :
                case IDC_CONDCHL11 :
                case IDC_CONDCHL12 :
                case IDC_CONDCHL13 :
                case IDC_CONDCHL14 :
                case IDC_CONDCHL15 :
                     if (HIWORD(wParam) == CBN_KILLFOCUS)
                     {
                        i = (int)SendDlgItemMessage(hDlg, (int)(LOWORD(wParam)),
                                  CB_GETCURSEL, 0, 0) ;
                        if (i != CB_ERR)
                           gwCond[(int)(LOWORD(wParam)) - IDC_CONDCHL0]= (unsigned)i;
                     }
                     return TRUE;

             }
             break;
    }
    return FALSE ;
}

/***************************************************************************
    FUNCTION: LevelListDlgProc(HWND, unsigned, WPARAM, LPARAM)

    PURPOSE:  Processes dialog box messages for level list
****************************************************************************/

BOOL FTYPE LevelListDlgProc(hDlg, message, wParam, lParam)
HWND hDlg;                                /* window handle                 */
unsigned message;                         /* type of message               */
WPARAM wParam;                            /* additional information        */
LPARAM lParam;                            /* additional information        */
{
    USHORT  i;

    switch (message)
    {
        case WM_INITDIALOG :

             // Initialize level/channel
             for (i = 0; i < 16; i ++)
               {
                 EnableWindow(GetDlgItem(hDlg, IDC_HIGHCHL0 + i), FALSE);
                 EnableWindow(GetDlgItem(hDlg, IDC_LOWCHL0 + i), FALSE);
               }

             for(i = gwStartChl; i < (gwNumChl+gwStartChl); i ++)
                {
                  EnableWindow(GetDlgItem(hDlg, IDC_HIGHCHL0 + i), TRUE);
                  EnableWindow(GetDlgItem(hDlg, IDC_LOWCHL0 + i), TRUE);
                  sprintf(szBuffer, "%6.2f", gfLevel[i].fHigh);
                  SendDlgItemMessage(hDlg, IDC_HIGHCHL0+i, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));

                  sprintf(szBuffer, "%6.2f", gfLevel[i].fLow);
                  SendDlgItemMessage(hDlg, IDC_LOWCHL0+i, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
                }

             return TRUE;

        case WM_COMMAND :
             switch (LOWORD(wParam))
             {
                case IDOK :
                case IDCANCEL :
                     EndDialog(hDlg, 0);
                     return TRUE;

                case IDC_HIGHCHL0 :
                case IDC_HIGHCHL1 :
                case IDC_HIGHCHL2 :
                case IDC_HIGHCHL3 :
                case IDC_HIGHCHL4 :
                case IDC_HIGHCHL5 :
                case IDC_HIGHCHL6 :
                case IDC_HIGHCHL7 :
                case IDC_HIGHCHL8 :
                case IDC_HIGHCHL9 :
                case IDC_HIGHCHL10 :
                case IDC_HIGHCHL11 :
                case IDC_HIGHCHL12 :
                case IDC_HIGHCHL13 :
                case IDC_HIGHCHL14 :
                case IDC_HIGHCHL15 :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, (int)(LOWORD(wParam)),
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, (int)(LOWORD(wParam)),
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           gfLevel[(int)(LOWORD(wParam)) - IDC_HIGHCHL0].fHigh
                               = (float)atof(szBuffer);
                           SendDlgItemMessage(hDlg, (int)wParam,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;

                case IDC_LOWCHL0 :
                case IDC_LOWCHL1 :
                case IDC_LOWCHL2 :
                case IDC_LOWCHL3 :
                case IDC_LOWCHL4 :
                case IDC_LOWCHL5 :
                case IDC_LOWCHL6 :
                case IDC_LOWCHL7 :
                case IDC_LOWCHL8 :
                case IDC_LOWCHL9 :
                case IDC_LOWCHL10 :
                case IDC_LOWCHL11 :
                case IDC_LOWCHL12 :
                case IDC_LOWCHL13 :
                case IDC_LOWCHL14 :
                case IDC_LOWCHL15 :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, (int)LOWORD(wParam),
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, (int)LOWORD(wParam),
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           gfLevel[(int)(LOWORD(wParam)) - IDC_LOWCHL0].fLow
                               = (float)atof(szBuffer);
                           SendDlgItemMessage(hDlg, (int)wParam,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;
             }
             break;
    }
    return FALSE ;
}


/***************************************************************************
    FUNCTION: ConfigDlgProc(HWND, unsigned, WPARAM, LPARAM)

    PURPOSE:  Processes dialog box messages for configuration
****************************************************************************/

BOOL FTYPE ConfigDlgProc(hDlg, message, wParam, lParam)
HWND hDlg;                              /* window handle                   */
unsigned message;                       /* type of message                 */
WPARAM wParam;                          /* additional information          */
LPARAM lParam;                          /* additional information          */
{
    int  i;

    switch (message)
    {
        case WM_INITDIALOG :

            if (!gwSelectDevice)
            {
                // Step 1: Select Device
                ErrCde = DRV_SelectDevice(hDlg, FALSE, &dwDeviceNum, szDescript);
                if (ErrCde != SUCCESS)
                {
                    DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
                    MessageBox(hWnd,(LPCSTR)szErrMsg,"Driver Message",MB_OK);
                    return 0;
                }

                gwSelectDevice = TRUE;
            }

            // Show device description to Button text
            SendDlgItemMessage(hDlg, IDC_DeviceSelect, WM_SETTEXT,
               50, (LPARAM)(LPSTR)szDescript);

            ErrCde = DRV_DeviceOpen(dwDeviceNum, (LONG far *)&DriverHandle);
            if (ErrCde != SUCCESS)
            {
                DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
                MessageBox(hWnd,(LPCSTR)szErrMsg,"Device Open",MB_OK);
                return 0;
            }

            // Step 2: 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(hWnd,(LPCSTR)szErrMsg,"Driver Message",MB_OK);
                DRV_DeviceClose((LONG far *)&DriverHandle);
                return 0;
            }

            // Step 3: Initialize Input Range List Combobox with device features
            if (DevFeatures.usNumGain != 0)
            {
                EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), TRUE);
                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[gwGainCode].szGainStr)));

            }
            else
            {
                EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), FALSE);
                SendDlgItemMessage(hDlg, IDC_INPRANGE, CB_RESETCONTENT,
                    0, (LPARAM)((LPSTR)0));
            }

             // Initialize Conversion Number
             ultoa(gulConvNum, szBuffer, 10);

             SendDlgItemMessage(hDlg, IDC_CONVERSION, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));

             // Initialize Pacer Rate
             ltoa(gdwPacerRate, szBuffer, 10);

             SendDlgItemMessage(hDlg, IDC_PACER, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));

             if (gwExtTrig)
                EnableWindow(GetDlgItem(hDlg, IDC_PACER), FALSE);
             else
                EnableWindow(GetDlgItem(hDlg, IDC_PACER), TRUE);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -