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

📄 cdaddma.c

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 C
📖 第 1 页 / 共 5 页
字号:
             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);

             // Initialize Start Channel
             itoa(gwStartChl, szBuffer, 10);

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

             // Initialize Number Channel
             itoa((int)gwNumChl, szBuffer, 10);

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

             // Initialize Triggering
             CheckRadioButton(hDlg, IDC_INTTRIG, IDC_EXTTRIG,
                                    (gwExtTrig)?IDC_EXTTRIG:IDC_INTTRIG);

             // Initialize Repeated Mode
             CheckRadioButton(hDlg, IDC_CYCLIC, IDC_NONCYCLIC,
                                    (gwCyclicMode)?IDC_CYCLIC:IDC_NONCYCLIC);

             // Initialize Data Type
             CheckRadioButton(hDlg, IDC_DATAUSHORT, IDC_DATAFLOAT,
                 (gwDataType)?IDC_DATAFLOAT:IDC_DATAUSHORT);

             // Initialize Message Flag
             CheckRadioButton(hDlg, IDC_EVTENABLE, IDC_EVTDISABLE,
                 (gwEvtFlag)?IDC_EVTENABLE:IDC_EVTDISABLE);

             // Initialize Buffer Mode
             EnableWindow(GetDlgItem(hDlg, IDC_BUFSINGLE), FALSE);
             EnableWindow(GetDlgItem(hDlg, IDC_BUFDOUBLE), FALSE);

             // Initialize number of interrupt count
             itoa((int)gwIntrCount, szBuffer, 10);
             SendDlgItemMessage(hDlg, IDC_CONVINT, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));


             // Initialize gain table option
             if (gwGainList)
             {
                 CheckRadioButton(hDlg, IDC_OVERALLGAIN, IDC_GAINARRAY,
                     IDC_GAINARRAY);
                 EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), FALSE);
                 EnableWindow(GetDlgItem(hDlg, IDC_GAINLIST), TRUE);
             }
             else
             {
                 CheckRadioButton(hDlg, IDC_OVERALLGAIN, IDC_GAINARRAY,
                     IDC_OVERALLGAIN);
                 EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), TRUE);
                 EnableWindow(GetDlgItem(hDlg, IDC_GAINLIST), FALSE);
             }

             // Initialize Acquisition Mode
             for (i = 0; i < 3; i ++)
                 SendDlgItemMessage(hDlg, IDC_ACQMODE, CB_ADDSTRING, 0,
                       (LPARAM)((LPSTR)szAcqString[i]));

             SendDlgItemMessage(hDlg, IDC_ACQMODE, CB_SELECTSTRING, (WPARAM)(-1),
                      (LPARAM)((LPSTR)szAcqString[gwAcqMode]));

             // Initialize condition table option
             for (i = 0; i < 5; i ++)
                 SendDlgItemMessage(hDlg, IDC_CBALLCOND, CB_ADDSTRING, 0,
                       (LPARAM)((LPSTR)szCondString[i]));

             SendDlgItemMessage(hDlg, IDC_CBALLCOND, CB_SELECTSTRING, (WPARAM)(-1),
                      (LPARAM)((LPSTR)szCondString[gwCondition]));

             if (gwCondList)
             {
                 CheckRadioButton(hDlg, IDC_ALLCOND, IDC_INDCOND,
                                    IDC_INDCOND);
                 EnableWindow(GetDlgItem(hDlg, IDC_CBALLCOND), FALSE);
                 EnableWindow(GetDlgItem(hDlg, IDC_CONDLIST), TRUE);
             }
             else
             {
                 CheckRadioButton(hDlg, IDC_ALLCOND, IDC_INDCOND,
                                    IDC_ALLCOND);
                 EnableWindow(GetDlgItem(hDlg, IDC_CBALLCOND), TRUE);
                 EnableWindow(GetDlgItem(hDlg, IDC_CONDLIST), FALSE);
             }

             // Initialize level table option
             sprintf(szBuffer, "%6.2f", fHiLevel);
             SendDlgItemMessage(hDlg, IDC_ALLHIGH, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));

             sprintf(szBuffer, "%6.2f", fLoLevel);
             SendDlgItemMessage(hDlg, IDC_ALLLOW, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));

             if (gwLevelList)
             {
                 CheckRadioButton(hDlg, IDC_ALLLEVEL, IDC_INDLEVEL,
                                    IDC_INDLEVEL);
                 EnableWindow(GetDlgItem(hDlg, IDC_ALLHIGH), FALSE);
                 EnableWindow(GetDlgItem(hDlg, IDC_ALLLOW), FALSE);
                 EnableWindow(GetDlgItem(hDlg, IDC_LEVELLIST), TRUE);
             }
             else
             {
                 CheckRadioButton(hDlg, IDC_ALLLEVEL, IDC_INDLEVEL,
                                    IDC_ALLLEVEL);
                 EnableWindow(GetDlgItem(hDlg, IDC_ALLHIGH), TRUE);
                 EnableWindow(GetDlgItem(hDlg, IDC_ALLLOW), TRUE);
                 EnableWindow(GetDlgItem(hDlg, IDC_LEVELLIST), FALSE);
             }

             // Step 4: Close device
             DRV_DeviceClose((LONG far *)&DriverHandle);

             return TRUE;

        case WM_COMMAND :
             switch (LOWORD(wParam))
             {
                case IDOK :
                case IDCANCEL :
                     EndDialog(hDlg, 0);
                     return TRUE;
                case IDC_GAINLIST :
                     DialogBox (hInst, MAKEINTRESOURCE(IDD_GAINLIST),
                                hDlg, lpfnGainListDlgProc) ;
                     return TRUE;

                case IDC_CONDLIST :
                     DialogBox (hInst, MAKEINTRESOURCE(IDD_CONDLIST),
                                hDlg, lpfnCondListDlgProc) ;
                     return TRUE;

                case IDC_LEVELLIST :
                     DialogBox (hInst, MAKEINTRESOURCE(IDD_LEVELLIST),
                                hDlg, lpfnLevelListDlgProc) ;
                     return TRUE;

                case IDC_DeviceSelect:

                    // 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;
                    }

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

                    gwSelectDevice = TRUE;

                    // -------------------------------------------------
                    // Initialize Input Range List Combobox, it needs to
                    // get device features for gain list
                    // -------------------------------------------------

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

                    // Step 3: 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 4: Initialize Range Combobox with device features
                    gwGainCode = 0;

                    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[gwGainCode].szGainStr)));
                    }
                    else
                    {
                        EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), FALSE);
                        SendDlgItemMessage(hDlg, IDC_INPRANGE, CB_RESETCONTENT,
                            0, (LPARAM)((LPSTR)0));
                    }

                    // Step 5: close device
                    DRV_DeviceClose((LONG far *)&DriverHandle);

                    return TRUE;

                case IDC_ACQMODE :
                     if (HIWORD(wParam) == CBN_KILLFOCUS)
                     {
                        i = (int)SendDlgItemMessage(hDlg, IDC_ACQMODE,
                                  CB_GETCURSEL, 0, 0) ;
                        if (i != CB_ERR)
                           gwAcqMode = i;
                     }
                     return TRUE;

                case IDC_CONVERSION :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_CONVERSION,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_CONVERSION,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           gulConvNum = (ULONG)atol(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_CONVERSION,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;
                case IDC_PACER :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_PACER,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_PACER,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           gdwPacerRate = (ULONG)atol(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_PACER,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;
                case IDC_INPRANGE :
                     if (HIWORD(wParam) == CBN_KILLFOCUS)
                     {
                        i = (int)SendDlgItemMessage(hDlg, IDC_INPRANGE,
                                  CB_GETCURSEL, 0, 0) ;
                        if (i != CB_ERR)
                           gwGainCode = i;
                     }
                     return TRUE;
                case IDC_ESTART :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_ESTART,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_ESTART,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           gwStartChl = (USHORT)atoi(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_ESTART,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;
                case IDC_ESTOP :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_ESTOP,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_ESTOP,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           gwNumChl = (USHORT)atoi(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_ESTOP,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;
                case IDC_CONVINT :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_CONVINT,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_CONVINT,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           gwIntrCount = (USHORT)atoi(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_CONVINT,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;
                case IDC_OVERALLGAIN :
                     gwGainList = 0;
                     EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), TRUE);
                     EnableWindow(GetDlgItem(hDlg, IDC_GAINLIST), FALSE);
                     break;
                case IDC_GAINARRAY :
                     gwGainList = 1;
                     EnableWindow(GetDlgItem(hDlg, IDC_INPRANGE), FALSE);
                     EnableWindow(GetDlgItem(hDlg, IDC_GAINLIST), TRUE);
                     break;
                case IDC_ALLCOND :

⌨️ 快捷键说明

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