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

📄 addmabm.c

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 C
📖 第 1 页 / 共 5 页
字号:
        {
		      CheckDlgButton(hDlg,(IDC_TERMINATE),FALSE);
        }
        // Overrun
        if( bOverrun )
        {
		      CheckDlgButton(hDlg,(IDC_OVERRUN),TRUE);
        }
		  else
        {
		      CheckDlgButton(hDlg,(IDC_OVERRUN),FALSE);
        }
        // Interrupt
        if( bInterrupt )
        {
		      CheckDlgButton(hDlg,(IDC_INTERRUPT),TRUE);
		      EnableWindow(GetDlgItem(hDlg,(IDC_EVENTCOUNT)),TRUE);
        }
		  else
        {
		      CheckDlgButton(hDlg,(IDC_INTERRUPT),FALSE);
            EnableWindow(GetDlgItem(hDlg,(IDC_EVENTCOUNT)),FALSE);

        }

        // Step 5: Close device
        DRV_DeviceClose((LONG far *)&DriverHandle);
        return TRUE;

    case WM_COMMAND :
        switch (LOWORD(wParam))
        {
        case IDOK :
			{
				for ( i = IDC_PACERTRIG; i <= IDC_ABOUTTRIG; i++)
					if( SendDlgItemMessage(hDlg, i, BM_GETCHECK, 0, 0) == 1)
						gwTrigMode = (i - IDC_PACERTRIG);

				if((gwTrigMode == 2) || (gwTrigMode == 3))
				{
					SendDlgItemMessage(hDlg, IDC_DELAYCNT, WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
					gwDelayCnt = (USHORT)atoi(szBuffer);
				}
				else
					gwDelayCnt = 2;

				if(gwSRCType)
				{
					SendDlgItemMessage(hDlg, IDC_TRIGVOLTAGE, WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
					gwTrigVol = (FLOAT)atof(szBuffer);
				}
			}

        case IDCANCEL :
            EndDialog(hDlg, 0);
            return TRUE;

        case IDC_GAINLIST :
            DialogBox (hInst, MAKEINTRESOURCE(IDD_GAINLIST),
                hDlg, lpfnGainListDlgProc) ;
            return TRUE;

        case IDC_DeviceSelect:

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

            // -------------------------------------------------
            // 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_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 = (USHORT)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_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_INTTRIG :
            EnableWindow(GetDlgItem(hDlg, IDC_PACER), TRUE);
            gwClockSrc = 0;
            break;
        case IDC_EXTTRIG_0:
            EnableWindow(GetDlgItem(hDlg, IDC_PACER), FALSE);
            gwClockSrc = 1;
            break;
        case IDC_EXTTRIG_1:
            EnableWindow(GetDlgItem(hDlg, IDC_PACER), FALSE);
            gwClockSrc = 2;
            break;

        case IDC_CYCLIC :
            gwCyclicMode = 1;
            break;
        case IDC_NONCYCLIC :
            gwCyclicMode = 0;
            break;
        case IDC_DATAUSHORT :
            gwDataType = 0;
            break;
        case IDC_DATAFLOAT :
            gwDataType = 1;
            break;
        case IDC_EVTENABLE :
            gwEvtFlag = 1;
            break;
        case IDC_EVTDISABLE :
            gwEvtFlag = 0;
            break;

		case IDC_PACERTRIG:
			EnableWindow(GetDlgItem(hDlg,IDC_DELAYCNT), FALSE);
         EnableWindow(GetDlgItem(hDlg, IDC_TRIGSRC1), FALSE);
         EnableWindow(GetDlgItem(hDlg, IDC_TRIGSRC2), FALSE);
         EnableWindow(GetDlgItem(hDlg,IDC_DIGTYPE), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_0), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_1), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_2), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_3), FALSE);
         EnableWindow(GetDlgItem(hDlg,IDC_EDGERISE), FALSE);
         EnableWindow(GetDlgItem(hDlg,IDC_EDGEFALL), FALSE);
         EnableWindow(GetDlgItem(hDlg,IDC_CYCLIC), TRUE);
         EnableWindow(GetDlgItem(hDlg,IDC_NONCYCLIC), TRUE);

         gwExtTrig = 0;
         CheckRadioButton(hDlg, IDC_TRIGSRC1, IDC_TRIGSRC2,
            (gwExtTrig)?IDC_TRIGSRC2:IDC_TRIGSRC1);


			break;
		case IDC_POSTTRIG:
			EnableWindow(GetDlgItem(hDlg,IDC_DELAYCNT), FALSE);
            EnableWindow(GetDlgItem(hDlg,IDC_TRIGSRC1), FALSE);
            EnableWindow(GetDlgItem(hDlg,IDC_TRIGSRC2), FALSE);
            EnableWindow(GetDlgItem(hDlg,IDC_DIGTYPE), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_0), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_1), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_2), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_3), TRUE);
            EnableWindow(GetDlgItem(hDlg,IDC_EDGERISE), TRUE);
            EnableWindow(GetDlgItem(hDlg,IDC_EDGEFALL), TRUE);
            EnableWindow(GetDlgItem(hDlg,IDC_CYCLIC), TRUE);
            EnableWindow(GetDlgItem(hDlg,IDC_NONCYCLIC), TRUE);

         gwExtTrig = 1;
         CheckRadioButton(hDlg, IDC_TRIGSRC1, IDC_TRIGSRC2,
            (gwExtTrig)?IDC_TRIGSRC2:IDC_TRIGSRC1);

		 gwTrigEdge = 0;
        CheckRadioButton(hDlg, IDC_EDGERISE, IDC_EDGEFALL,
            (gwTrigEdge)?IDC_EDGEFALL:IDC_EDGERISE);
		 

			break;

      case IDC_DELAYTRIG:
		case IDC_ABOUTTRIG:
			EnableWindow(GetDlgItem(hDlg,IDC_DELAYCNT), TRUE);
            EnableWindow(GetDlgItem(hDlg,IDC_TRIGSRC1), FALSE);
            EnableWindow(GetDlgItem(hDlg,IDC_TRIGSRC2), FALSE);
            EnableWindow(GetDlgItem(hDlg,IDC_DIGTYPE), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_0), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_1), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_2), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_ANGTYPE_3), TRUE);
		    EnableWindow(GetDlgItem(hDlg,IDC_EDGERISE), TRUE);
            EnableWindow(GetDlgItem(hDlg,IDC_EDGEFALL), TRUE);
         if ( wParam == IDC_ABOUTTRIG )
         {
             gwCyclicMode = 1;
		     EnableWindow(GetDlgItem(hDlg,IDC_CYCLIC), FALSE);
             EnableWindow(GetDlgItem(hDlg,IDC_NONCYCLIC), FALSE);
             CheckRadioButton(hDlg, IDC_CYCLIC, IDC_NONCYCLIC,
                (gwCyclicMode)?IDC_CYCLIC:IDC_NONCYCLIC);
			 gwTrigEdge = 0;
			CheckRadioButton(hDlg, IDC_EDGERISE, IDC_EDGEFALL,
				(gwTrigEdge)?IDC_EDGEFALL:IDC_EDGERISE);
         }
         else
         {
  		       EnableWindow(GetDlgItem(hDlg,IDC_CYCLIC), TRUE);
             EnableWindow(GetDlgItem(hDlg,IDC_NONCYCLIC), TRUE);
			 gwTrigEdge = 1;
			CheckRadioButton(hDlg, IDC_EDGERISE, IDC_EDGEFALL,
				(gwTrigEdge)?IDC_EDGEFALL:IDC_EDGERISE);
         }
         
         gwExtTrig = 1;
         CheckRadioButton(hDlg, IDC_TRIGSRC1, IDC_TRIGSRC2,
            (gwExtTrig)?IDC_TRIGSRC2:IDC_TRIGSRC1);

			break;

      case IDC_TRIGSRC1:
         gwExtTrig = 0;
         break;

      case IDC_TRIGSRC2:
         gwExtTrig = 1;
         break;
         
		case IDC_EDGERISE:
			gwTrigEdge = 0;
			break;
		case IDC_EDGEFALL:
			gwTrigEdge = 1;
			break;
		case IDC_DIGTYPE:
			EnableWindow(GetDlgItem(hDlg, IDC_TRIGVOLTAGE), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_TEXTVOL), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_TEXTV), FALSE);
			gwSRCType = 0;
			break;

		case IDC_ANGTYPE_0:
		case IDC_ANGTYPE_1:
		case IDC_ANGTYPE_2:
		case IDC_ANGTYPE_3:
			EnableWindow(GetDlgItem(hDlg, IDC_TRIGVOLTAGE), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_TEXTVOL), TRUE);
			EnableWindow(GetDlgItem(hDlg, IDC_TEXTV), TRUE);
			gwSRCType = wParam - IDC_DIGTYPE;
			break;

      case IDC_BUFFERCHANGE:
         if(IsDlgButtonChecked(hDlg, IDC_BUFFERCHANGE))
			{ 
             bBufferChange = 1; 		   
			}
         else
         {
            bBufferChange = 0;
         }

⌨️ 快捷键说明

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