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

📄 addmabm.c

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

		case IDC_EVENTCOUNT:
         if (HIWORD(wParam) == EN_KILLFOCUS)
            {
                if(SendDlgItemMessage(hDlg, IDC_EVENTCOUNT,
                    EM_GETMODIFY, 0, 0))
                {
                    SendDlgItemMessage(hDlg, IDC_EVENTCOUNT,
                        WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer);
                    if ( atol(szBuffer)<=0 || atol(szBuffer)>=32 )
                    {
                       MessageBox(hWnd,"Invalid event count.", "Check Status", MB_OK);
                       break;
                    }
                    gulEventCount = (ULONG)atol(szBuffer);
                    SendDlgItemMessage(hDlg, IDC_EVENTCOUNT,
                        EM_SETMODIFY, FALSE, 0) ;
                }
            }
 
         break;

      case IDC_OVERRUNTIME:
         if (HIWORD(wParam) == EN_KILLFOCUS)
            {
                if(SendDlgItemMessage(hDlg, IDC_OVERRUNTIME,
                    EM_GETMODIFY, 0, 0))
                {
                    SendDlgItemMessage(hDlg, IDC_OVERRUNTIME,
                        WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                    gulOverrunTime = (ULONG)atol(szBuffer);
                    SendDlgItemMessage(hDlg, IDC_OVERRUNTIME,
                        EM_SETMODIFY, FALSE, 0) ;
                }
            }
         break;

      case IDC_DELAYCNT:
         if (HIWORD(wParam) == EN_KILLFOCUS)
            {
                if(SendDlgItemMessage(hDlg, IDC_DELAYCNT,
                    EM_GETMODIFY, 0, 0))
                {
                    SendDlgItemMessage(hDlg, IDC_DELAYCNT,
                        WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                    gwDelayCnt = (ULONG)atol(szBuffer);
                    SendDlgItemMessage(hDlg, IDC_DELAYCNT,
                        EM_SETMODIFY, FALSE, 0) ;
                }
            }
         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        */
{
    static  LONG  lEndDisplay, lStartDisplay;
    LONG  i;
    LPVOID temp;
    HCURSOR hCursor;

    if (gwDataType == 0)
       temp = (USHORT far *)ptFAITransfer.DataBuffer;
    else
       temp = (FLOAT far *)ptFAITransfer.DataBuffer;

    switch (message)
    {
    case WM_INITDIALOG :
		{
		if(gulConvNum > 4095)
			lEndDisplay = 4095;
		else
			lEndDisplay = gulConvNum-1;

		lStartDisplay = gdwStartPt;

        ultoa(lStartDisplay, szBuffer, 10);
		SetWindowText(GetDlgItem(hDlg,IDC_FROM),(LPCTSTR)szBuffer);

        ultoa(lEndDisplay, szBuffer, 10);
		SetWindowText(GetDlgItem(hDlg,IDC_TO),(LPCTSTR)szBuffer);

        ultoa(gulConvNum, szBuffer, 10);
		SetWindowText(GetDlgItem(hDlg,IDC_TOTAL),(LPCTSTR)szBuffer);

        for(i = lStartDisplay; i <= lEndDisplay; ++i)
        {

            if (gwDataType == 0)
                sprintf(szBuffer, "Buf[%ld] = %4x",i, ((USHORT far *)temp)[i]);
            else
                sprintf(szBuffer, "Buf[%ld] = %10.6f", i, ((FLOAT far *)temp)[i]);

            if(SendDlgItemMessage(hDlg, IDC_DATALIST, LB_ADDSTRING, 0,
                (LPARAM)(LPSTR)szBuffer) == LB_ERRSPACE)
            {   MessageBox(hWnd,(LPCSTR)"Not Enough Memory",
                    "Display Data",MB_OK);
                return TRUE;
            }
        }

		if(gulConvNum<4095)
		{
			EnableWindow(GetDlgItem(hDlg,IDC_BACKWARD), FALSE);
			EnableWindow(GetDlgItem(hDlg,IDC_BACKBUTTON), FALSE);
			EnableWindow(GetDlgItem(hDlg,IDC_FORWARD), FALSE);
			EnableWindow(GetDlgItem(hDlg,IDC_FORWARDBUTTON), FALSE);
		}
		else
		{
			EnableWindow(GetDlgItem(hDlg,IDC_BACKWARD), FALSE);
			EnableWindow(GetDlgItem(hDlg,IDC_BACKBUTTON), FALSE);
			EnableWindow(GetDlgItem(hDlg,IDC_FORWARD), TRUE);
			EnableWindow(GetDlgItem(hDlg,IDC_FORWARDBUTTON), TRUE);
		}

        return TRUE;
		}

    case WM_COMMAND :
        switch (LOWORD(wParam))
        {
        case IDC_BACKBUTTON :
			{
			hCursor = LoadCursor(NULL,IDC_WAIT);
			SetCursor(hCursor);

			for(i=0; i<8192; i++)
			  SendDlgItemMessage(hDlg, IDC_DATALIST, LB_DELETESTRING , 0, (LPARAM)(LPSTR)0);

			if(gulConvNum > 4095)
				lEndDisplay = 4095;
			else
				lEndDisplay = gulConvNum-1;

			lStartDisplay = gdwStartPt;
	
			ultoa(lStartDisplay, szBuffer, 10);
			SetWindowText(GetDlgItem(hDlg,IDC_FROM),(LPCTSTR)szBuffer);

			ultoa(lEndDisplay, szBuffer, 10);
			SetWindowText(GetDlgItem(hDlg,IDC_TO),(LPCTSTR)szBuffer);

			for(i = lStartDisplay; i <= lEndDisplay; ++i)
			{

				if (gwDataType == 0)
					sprintf(szBuffer, "Buf[%ld] = %4x",i, ((USHORT far *)temp)[i]);
				else
					sprintf(szBuffer, "Buf[%ld] = %10.6f", i, ((FLOAT far *)temp)[i]);

				if(SendDlgItemMessage(hDlg, IDC_DATALIST, LB_ADDSTRING, 0,
					(LPARAM)(LPSTR)szBuffer) == LB_ERRSPACE)
				{   MessageBox(hWnd,(LPCSTR)"Not Enough Memory",
						"Display Data",MB_OK);
                return TRUE;
				}
			}

			if(gulConvNum<4095)
			{
				EnableWindow(GetDlgItem(hDlg,IDC_BACKWARD), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_BACKBUTTON), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARD), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARDBUTTON), FALSE);
			}
			else
			{
				EnableWindow(GetDlgItem(hDlg,IDC_BACKWARD), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_BACKBUTTON), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARD), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARDBUTTON), TRUE);
			}

			hCursor = LoadCursor(NULL, IDC_ARROW);
			SetCursor(hCursor);
			break;
			}
        case IDC_BACKWARD :
			{
			hCursor = LoadCursor(NULL,IDC_WAIT);
			SetCursor(hCursor);

			for(i=0; i<8192; i++)
			  SendDlgItemMessage(hDlg, IDC_DATALIST, LB_DELETESTRING , 0, (LPARAM)(LPSTR)0);

			lEndDisplay -= 4096;
			lStartDisplay -= 4096;

			if(lStartDisplay < 0)
			{
				lStartDisplay = 0;
				lEndDisplay = 4095;
			}

			ultoa(lStartDisplay, szBuffer, 10);
			SetWindowText(GetDlgItem(hDlg,IDC_FROM),(LPCTSTR)szBuffer);

			ultoa(lEndDisplay, szBuffer, 10);
			SetWindowText(GetDlgItem(hDlg,IDC_TO),(LPCTSTR)szBuffer);

			for(i = lStartDisplay; i <= lEndDisplay; ++i)
			{

				if (gwDataType == 0)
					sprintf(szBuffer, "Buf[%ld] = %4x",i, ((USHORT far *)temp)[i]);
				else
					sprintf(szBuffer, "Buf[%ld] = %10.6f", i, ((FLOAT far *)temp)[i]);

				if(SendDlgItemMessage(hDlg, IDC_DATALIST, LB_ADDSTRING, 0,
					(LPARAM)(LPSTR)szBuffer) == LB_ERRSPACE)
				{   MessageBox(hWnd,(LPCSTR)"Not Enough Memory",
						"Display Data",MB_OK);
                return TRUE;
				}
			}

			if(lStartDisplay == 0)
			{
				EnableWindow(GetDlgItem(hDlg,IDC_BACKWARD), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_BACKBUTTON), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARD), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARDBUTTON), TRUE);
			}
			else
			{
				EnableWindow(GetDlgItem(hDlg,IDC_BACKWARD), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_BACKBUTTON), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARD), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARDBUTTON), TRUE);
			}

			hCursor = LoadCursor(NULL, IDC_ARROW);
			SetCursor(hCursor);
			break;
			}
        case IDC_FORWARD :
			{
			hCursor = LoadCursor(NULL, IDC_WAIT);
			SetCursor(hCursor);

			for(i=0; i<8192; i++)
			  SendDlgItemMessage(hDlg, IDC_DATALIST, LB_DELETESTRING , 0, (LPARAM)(LPSTR)0);

			lEndDisplay += 4096;
			lStartDisplay += 4096;

			if(lEndDisplay > (LONG)gulConvNum)
				lEndDisplay = gulConvNum-1;

			if(lStartDisplay < 0)
				lStartDisplay = 0;

			ultoa(lStartDisplay, szBuffer, 10);
			SetWindowText(GetDlgItem(hDlg,IDC_FROM),(LPCTSTR)szBuffer);

			ultoa(lEndDisplay, szBuffer, 10);
			SetWindowText(GetDlgItem(hDlg,IDC_TO),(LPCTSTR)szBuffer);

			for(i = lStartDisplay; i <= lEndDisplay; ++i)
			{

				if (gwDataType == 0)
					sprintf(szBuffer, "Buf[%ld] = %4x",i, ((USHORT far *)temp)[i]);
				else
					sprintf(szBuffer, "Buf[%ld] = %10.6f", i, ((FLOAT far *)temp)[i]);

				if(SendDlgItemMessage(hDlg, IDC_DATALIST, LB_ADDSTRING, 0,
					(LPARAM)(LPSTR)szBuffer) == LB_ERRSPACE)
				{   MessageBox(hWnd,(LPCSTR)"Not Enough Memory",
						"Display Data",MB_OK);
                return TRUE;
				}
			}

			if(lEndDisplay == (LONG)gulConvNum-1)
			{
				EnableWindow(GetDlgItem(hDlg,IDC_BACKWARD), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_BACKBUTTON), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARD), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARDBUTTON), FALSE);
			}
			else
			{
				EnableWindow(GetDlgItem(hDlg,IDC_BACKWARD), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_BACKBUTTON), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARD), TRUE);
				EnableWindow(GetDlgItem(hDlg,IDC_FORWARDBUTTON), TRUE);
			}

			hCursor = LoadCursor(NULL,IDC_ARROW);
			SetCursor(hCursor);
			break;
			}
        case IDC_FORWARDBUTTON :
			{
			hCursor = LoadCursor(NULL, IDC_WAIT);
			SetCursor(hCursor);

			for(i=0; i<8192; i++)
			  SendDlgItemMessage(hDlg, IDC_DATALIST, LB_DELETESTRING , 0, (LPARAM)(LPSTR)0);

			lEndDisplay = gulConvNum-1;
			lStartDisplay = ((gulConvNum/4095)-1)*4095;
	
			ultoa(lStartDisplay, szBuffer, 10);
			SetWindowText(GetDlgItem(hDlg,IDC_FROM),(LPCTSTR)szBuffer);

			ultoa(lEndDisplay, szBuffer, 10);

⌨️ 快捷键说明

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