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

📄 thermo.c

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

        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 + -