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

📄 didma.c

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 C
📖 第 1 页 / 共 4 页
字号:
		    CheckRadioButton(hDlg, IDC_NORMAL, IDC_BURST,IDC_NORMAL);
          if( BD_MIC3755 == gdwBoardId )
          {
             EnableWindow(GetDlgItem(hDlg, IDC_DMA_SLAVE), FALSE);
             EnableWindow(GetDlgItem(hDlg, IDC_DMA_MASTER), FALSE);
          } 
			break;
		case 1:
		    CheckRadioButton(hDlg, IDC_NORMAL, IDC_BURST,IDC_8255);
          if( BD_MIC3755 == gdwBoardId )
          {
             EnableWindow(GetDlgItem(hDlg, IDC_DMA_SLAVE), FALSE);
             EnableWindow(GetDlgItem(hDlg, IDC_DMA_MASTER), FALSE);
          } 
			break;
		case 2:
		    CheckRadioButton(hDlg, IDC_NORMAL, IDC_BURST,IDC_BURST);
          if( BD_MIC3755 == gdwBoardId )
          {
             EnableWindow(GetDlgItem(hDlg, IDC_DMA_SLAVE), TRUE);
             EnableWindow(GetDlgItem(hDlg, IDC_DMA_MASTER), TRUE);
          } 
			break;
		default:
			break;
		}
      
		switch(gdwDIStartMode)
		{
		case 1:
		    CheckRadioButton(hDlg, IDC_SOFT_START, IDC_MATCH_START,IDC_SOFT_START);
			break;
		case 2:
		    CheckRadioButton(hDlg, IDC_SOFT_START, IDC_MATCH_START,IDC_EXTERNAL_START);
			break;
		case 3:
		    CheckRadioButton(hDlg, IDC_SOFT_START, IDC_MATCH_START,IDC_MATCH_START);
			break;
		default:
			break;
		}
		  // initialize stop type
		switch(gdwDIStopMode)
		{
		case 1:
		    CheckRadioButton(hDlg, IDC_SOFT_STOP, IDC_MATCH_STOP,IDC_SOFT_STOP);
			break;
		case 2:
		    CheckRadioButton(hDlg, IDC_SOFT_STOP, IDC_MATCH_STOP,IDC_EXTERNAL_STOP);
			break;
		case 3:
		    CheckRadioButton(hDlg, IDC_SOFT_STOP, IDC_MATCH_STOP,IDC_MATCH_STOP);
			break;
		default:
			break;
		}
      // Initialize DMA mode
      switch(gdwDmaMode)
      {
      case 0:
         CheckRadioButton(hDlg, IDC_DMA_SLAVE, IDC_DMA_MASTER, IDC_DMA_SLAVE);
      	break;
      case 1:
         CheckRadioButton(hDlg, IDC_DMA_SLAVE, IDC_DMA_MASTER, IDC_DMA_MASTER);
         break;
      default:
          break;
      }
      if( BD_MIC3755 != gdwBoardId )
      {
         EnableWindow(GetDlgItem(hDlg, IDC_DMA_SLAVE), FALSE);
         EnableWindow(GetDlgItem(hDlg, IDC_DMA_MASTER), FALSE);
      }

		  // initialize trigger source combo
		  // Add trigger source control selection strings
		  // The trigger source X'tal 30MHz - 10Mhz
		  SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_ADDSTRING, 0,(LPARAM)((LPSTR)"30 MHz"));
		  SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_ADDSTRING, 1,(LPARAM)((LPSTR)"15 MHz"));
		  SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_ADDSTRING, 2,(LPARAM)((LPSTR)"10 MHz"));
		  SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_ADDSTRING, 3,(LPARAM)((LPSTR)"Counter 0"));
		  SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_ADDSTRING, 4,(LPARAM)((LPSTR)"External"));
        if( BD_MIC3755 == gdwBoardId )
        {
           SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_ADDSTRING, 5,(LPARAM)((LPSTR)"12 MHz"));
           SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_ADDSTRING, 6,(LPARAM)((LPSTR)"20 MHz"));
        }

		  // 30MHz(1), 15Mhz(2), 10Mhz(3), Counter 0(4), External (5)
        // 12MHz(6), 20MHz(7)
		  SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_SETCURSEL, gdwDITriggerSource-1, 0);

        // Initialize Counter0 value
        itoa((int)gdwCounterValue[0], szBuffer, 10);
        SendDlgItemMessage(hDlg, IDC_EDIT_COUNTER0_VALUE, EM_REPLACESEL, 0,
            (LPARAM)((LPSTR)szBuffer));
		  if ( gdwDITriggerSource != 4 )
		  {
			  EnableWindow( GetDlgItem(hDlg, IDC_EDIT_COUNTER0_VALUE), FALSE);
		  }
        // Initialize pattern Match value
		  sprintf(szBuffer,"%X",gdwPatternMatchValue);
         SetDlgItemText(hDlg,IDC_PATTERN_MATCH,szBuffer);
        // Initialize Repeated Mode
        CheckRadioButton(hDlg, IDC_CYCLIC, IDC_NONCYCLIC,
           (gdwCyclicMode)?IDC_CYCLIC:IDC_NONCYCLIC);

        // Initialize Data Width
        CheckRadioButton(hDlg, IDC_32DI, IDC_8DIO, (IDC_32DI + gdwDataWidth) );

		  // initialize User Buffer
		  // Add trigger source control selection strings		  
		  SendDlgItemMessage(hDlg, IDC_LIST_USER_BUFFER, LB_ADDSTRING, 0,(LPARAM)((LPSTR)"1  Mega"));
		  SendDlgItemMessage(hDlg, IDC_LIST_USER_BUFFER, LB_ADDSTRING, 1,(LPARAM)((LPSTR)"2  Mega"));
		  SendDlgItemMessage(hDlg, IDC_LIST_USER_BUFFER, LB_ADDSTRING, 2,(LPARAM)((LPSTR)"4  Mega"));
		  SendDlgItemMessage(hDlg, IDC_LIST_USER_BUFFER, LB_ADDSTRING, 3,(LPARAM)((LPSTR)"8  Mega"));
		  SendDlgItemMessage(hDlg, IDC_LIST_USER_BUFFER, LB_ADDSTRING, 4,(LPARAM)((LPSTR)"16 Mega "));
		  SendDlgItemMessage(hDlg, IDC_LIST_USER_BUFFER, LB_SETCURSEL, gdwUserBufferSize, 0);

        
        return TRUE;

    case WM_COMMAND :
        switch (LOWORD(wParam))
        {
        case IDOK :
			{
				// save the data width
				for ( i = IDC_32DI; i <= IDC_8DIO; i++)
				{
					if( SendDlgItemMessage(hDlg, i, BM_GETCHECK, 0, 0) == 1)
					{
						gdwDataWidth = (i - IDC_32DI);
					}
				}
				
				// save the start type
				for ( i = IDC_SOFT_START; i <= IDC_MATCH_START; i++ )
				{
					if ( SendDlgItemMessage( hDlg, i, BM_GETCHECK, 0, 0 ) == 1 )
					{
						gdwDIStartMode = i - IDC_SOFT_START + 1;
					}
				}
            
				// save the operation mode
				for ( i = IDC_NORMAL; i <= IDC_BURST; i++ )
				{
					if ( SendDlgItemMessage( hDlg, i, BM_GETCHECK, 0, 0 ) == 1 )
					{
						gdwOperationMode = i - IDC_NORMAL ;
					}
				}
            
				// save the stop type
				for ( i = IDC_SOFT_STOP; i <= IDC_MATCH_STOP; i++ )
				{
					if ( SendDlgItemMessage( hDlg, i, BM_GETCHECK, 0, 0 ) == 1 )
					{
						gdwDIStopMode = i - IDC_SOFT_STOP + 1;
					}
				}

				// save the trigger source
				// 30MHz(1), 15Mhz(2), 10Mhz(3), Counter 0(4), External (5)
			   gdwDITriggerSource = SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_GETCURSEL, 0, 0) + 1;

				// save the counter0 value 
				SendDlgItemMessage(hDlg, IDC_EDIT_COUNTER0_VALUE, WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
				gdwCounterValue[0] = (DWORD)atoi(szBuffer);

 				// save the pattern match value 
 				sprintf(szBuffer,"%s","0x");
            GetDlgItemText(hDlg,IDC_PATTERN_MATCH,&(szBuffer[2]),10);
				gdwPatternMatchValue=strtoul(szBuffer,(char**)(&szTemp),16);

				// save user buffer size
				// 1M(0), 2M(1), 4M(2), 8M(3), 16M(4)
				gdwUserBufferSize = SendDlgItemMessage(hDlg, IDC_LIST_USER_BUFFER, LB_GETCURSEL, 0, 0);

				//DRV_DeviceClose((LONG far *)&DriverHandle);
			}

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

		  case  IDC_LIST_TRIGGER_SOURCE:
			  {
				  if( HIWORD(wParam) == LBN_SELCHANGE )
				  {

					  if( SendDlgItemMessage(hDlg, IDC_LIST_TRIGGER_SOURCE, LB_GETCURSEL ,0,0) == 3 )
						 bEnable = TRUE;
					  else 
						 bEnable = FALSE;

					  EnableWindow( GetDlgItem(hDlg, IDC_EDIT_COUNTER0_VALUE), bEnable);
				  }

				}
			  break;

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

            // -------------------------------------------------
            // 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 5: Close device
            DRV_DeviceClose((LONG far *)&DriverHandle);

            return TRUE;
*/
           gbConfigured = FALSE;
           SendMessage(hDlg, WM_INITDIALOG, 0, 0);
           break;
           
        case IDC_CYCLIC :
            gdwCyclicMode = 1;
            break;
        case IDC_NONCYCLIC :
            gdwCyclicMode = 0;
            break;
        case IDC_DMA_SLAVE :
            gdwDmaMode = 0;
            break;
        case IDC_DMA_MASTER :
           gdwDmaMode = 1;
           break;
        case IDC_NORMAL :
        case IDC_8255 :
           if( BD_MIC3755 == gdwBoardId )
           {
              EnableWindow(GetDlgItem(hDlg, IDC_DMA_SLAVE), FALSE);
              EnableWindow(GetDlgItem(hDlg, IDC_DMA_MASTER), FALSE);
           }        
           break;

        case IDC_BURST :
           if( BD_MIC3755 == gdwBoardId )
           {
              EnableWindow(GetDlgItem(hDlg, IDC_DMA_SLAVE), TRUE);
              EnableWindow(GetDlgItem(hDlg, IDC_DMA_MASTER), TRUE);
           } 
           break;
        
		
        }
        break;
    }
    return FALSE ;
}

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

    PURPOSE:  Processes dialog box messages for acquired data
******************************************************************************/

BOOL FTYPE ShowDataDlgProc(hDlg, message, wParam, lParam)
HWND hDlg;                                  /* window handle                 */
unsigned message;                           /* type of message               */
WPARAM wParam;                              /* additional information        */
LPARAM lParam;                              /* additional information        */
{
    ULONG  lEndDisplay, lStartDisplay;
    ULONG  i;
    DWORD  dwUserBufferSize, dwCount;
    
    switch (message)
    {
    case WM_INITDIALOG :
		{         
         dwUserBufferSize = (DWORD)(Mega * pow((double)2, (double)gdwUserBufferSize));
         // 32DI(0)/32DO(1)/ 16 DIO(2) / 8DIO(3)
         switch( gdwDataWidth )
         {
         case 3:
            dwCount = dwUserBufferSize;
            break;

         case 2:
            dwCount = dwUserBufferSize / 2;
            break;

         default:
            dwCount = dwUserBufferSize / 4;
            break;
         }
         

⌨️ 快捷键说明

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