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

📄 wdadmabm.c

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 C
📖 第 1 页 / 共 4 页
字号:
                           SendDlgItemMessage(hDlg, IDC_CONVERSION,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           gulConvNum = 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 = atol(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_PACER,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;

                case IDC_WAVEFORMCOUNT :

                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_WAVEFORMCOUNT,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_WAVEFORMCOUNT,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;

						   if(!strcmp(szBuffer,"INFINITE"))
								gwWaveFormCount = INFINITE;
						   else
								gwWaveFormCount = atol(szBuffer);

                           SendDlgItemMessage(hDlg, IDC_WAVEFORMCOUNT,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;


                case IDC_INTTRIG :
                     gwExtTrig = 0;
                     break;;
                case IDC_EXTTRIG :
                     gwExtTrig = 1;
                     break;
                case IDC_EVTENABLE :
                    gwEvtFlag = 1;
                    break;
                case IDC_EVTDISABLE :
                    gwEvtFlag = 0;
                    break;
             }
             break;
    }
    return FALSE ;
}

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

    PURPOSE:  Processes dialog box messages for waveform setting
****************************************************************************/

BOOL FTYPE WaveDlgProc(hDlg, message, wParam, lParam)
HWND hDlg;                              /* window handle                   */
unsigned message;                       /* type of message                 */
WPARAM wParam;                          /* additional information          */
LPARAM lParam;                          /* additional information          */
{
    int  i;

    switch (message)
    {
        case WM_INITDIALOG :


             // Initialize Output Waveform's Selection
             for (i = 0; i < 5; i ++)
             {
                 SendDlgItemMessage(hDlg, IDC_WAVE_CH0, CB_ADDSTRING, 0,
                       (LPARAM)((LPSTR)szWaveform[i]));
                 SendDlgItemMessage(hDlg, IDC_WAVE_CH1, CB_ADDSTRING, 0,
                       (LPARAM)((LPSTR)szWaveform[i]));
                 SendDlgItemMessage(hDlg, IDC_WAVE_CH2, CB_ADDSTRING, 0,
                       (LPARAM)((LPSTR)szWaveform[i]));
                 SendDlgItemMessage(hDlg, IDC_WAVE_CH3, CB_ADDSTRING, 0,
                       (LPARAM)((LPSTR)szWaveform[i]));

             }

             SendDlgItemMessage(hDlg, IDC_WAVE_CH0, CB_SELECTSTRING, (WPARAM)(-1),
                    (LPARAM)((LPSTR)szWaveform[sWaveCh0.wWaveform]));
             SendDlgItemMessage(hDlg, IDC_WAVE_CH1, CB_SELECTSTRING,
                    (WPARAM)(-1), (LPARAM)((LPSTR)szWaveform[sWaveCh1.wWaveform]));
             SendDlgItemMessage(hDlg, IDC_WAVE_CH2, CB_SELECTSTRING, (WPARAM)(-1),
                    (LPARAM)((LPSTR)szWaveform[sWaveCh2.wWaveform]));
             SendDlgItemMessage(hDlg, IDC_WAVE_CH3, CB_SELECTSTRING,
                    (WPARAM)(-1), (LPARAM)((LPSTR)szWaveform[sWaveCh3.wWaveform]));

             // Initialize Magnitude
             sprintf(szBuffer, "%6.2f", sWaveCh0.fMagnitude);
             SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH0, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             sprintf(szBuffer, "%6.2f", sWaveCh1.fMagnitude);
             SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH1, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             sprintf(szBuffer, "%6.2f", sWaveCh2.fMagnitude);
             SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH2, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             sprintf(szBuffer, "%6.2f", sWaveCh3.fMagnitude);
             SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH3, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));

             // Initialize Offset
             sprintf(szBuffer, "%6.2f", sWaveCh0.fOffset);
             SendDlgItemMessage(hDlg, IDC_OFFSET_CH0, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             sprintf(szBuffer, "%6.2f", sWaveCh1.fOffset);
             SendDlgItemMessage(hDlg, IDC_OFFSET_CH1, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             sprintf(szBuffer, "%6.2f", sWaveCh2.fOffset);
             SendDlgItemMessage(hDlg, IDC_OFFSET_CH2, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             sprintf(szBuffer, "%6.2f", sWaveCh3.fOffset);
             SendDlgItemMessage(hDlg, IDC_OFFSET_CH3, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));

             // Initialize Period
             itoa(sWaveCh0.wPeriod, szBuffer, 10);
             SendDlgItemMessage(hDlg, IDC_PERIOD_CH0, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             itoa(sWaveCh1.wPeriod, szBuffer, 10);
             SendDlgItemMessage(hDlg, IDC_PERIOD_CH1, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             itoa(sWaveCh2.wPeriod, szBuffer, 10);
             SendDlgItemMessage(hDlg, IDC_PERIOD_CH2, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));
             itoa(sWaveCh3.wPeriod, szBuffer, 10);
             SendDlgItemMessage(hDlg, IDC_PERIOD_CH3, EM_REPLACESEL, 0,
                             (LPARAM)((LPSTR)szBuffer));

             return TRUE;

        case WM_COMMAND :
             switch (LOWORD(wParam))
             {
                case IDOK :
                case IDCANCEL :
					if ( bRunTimer )
					{
						for(i=0; i<4; i++)									
						{
							switch(i)
							{
							case 0 : 
								if(sWaveCh0.wWaveform != 4)  // 4 --> No Waveform
								{
									usEnabledChannel |= ADV_CHANNEL0;
									// set real voltage to hVoltageBuf
									SetRealBuffer(lpVoltageBuf[0], gulConvNum, &sWaveCh0);
									usChannelCount++;
								}
								else
									continue;
								
								break;
							case 1 : 
								if(sWaveCh1.wWaveform != 4)  
								{
									usEnabledChannel |= ADV_CHANNEL1;
									SetRealBuffer(lpVoltageBuf[1], gulConvNum, &sWaveCh1);
									usChannelCount++;
								}
								else
									continue;
								
								break;
							case 2 : 
								if(sWaveCh2.wWaveform != 4) 
								{
									usEnabledChannel |= ADV_CHANNEL2;
									SetRealBuffer(lpVoltageBuf[2], gulConvNum, &sWaveCh2);
									usChannelCount++;
								}
								else
									continue;
								
								break;
							case 3 : 
								if(sWaveCh3.wWaveform != 4) 
								{
									usEnabledChannel |= ADV_CHANNEL3;
									SetRealBuffer(lpVoltageBuf[3], gulConvNum, &sWaveCh3);
									usChannelCount++;
								}
								else
									continue;
								
								break;
							}
							
							// call FAOScale for transfer voltage to binary data
							ptFAOScale.VoltArray = lpVoltageBuf[i];
							ptFAOScale.BinArray  = lpBuf[i];
							ptFAOScale.chan      = i;
							ptFAOScale.count     = gulConvNum;
							if ((ErrCde = DRV_FAOScale(DriverHandle,
								(LPT_FAOScale)&ptFAOScale)) != 0)
							{
								DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
								MessageBox(hWnd,(LPCSTR)szErrMsg,"Driver Message",MB_OK);
								MyFreeBuffer();
								DRV_DeviceClose((LONG far *)&DriverHandle);
								return 0;
							}						
						}

						SetMultiToOneBuffer(usEnabledChannel,gulConvNum);
					}					
					EndDialog(hDlg, 0);
					return TRUE;

                case IDC_WAVE_CH0 :
                     if (HIWORD(wParam) == CBN_KILLFOCUS)
                     {
                        i = (int)SendDlgItemMessage(hDlg, IDC_WAVE_CH0,
                                  CB_GETCURSEL, 0, 0) ;
                        if (i != CB_ERR)
                           sWaveCh0.wWaveform = i;
                     }
                     return TRUE;

                case IDC_WAVE_CH1 :
                     if (HIWORD(wParam) == CBN_KILLFOCUS)
                     {
                        i = (int)SendDlgItemMessage(hDlg, IDC_WAVE_CH1,
                                  CB_GETCURSEL, 0, 0) ;
                        if (i != CB_ERR)
                           sWaveCh1.wWaveform = i;
                     }
                     return TRUE;

                case IDC_WAVE_CH2 :
                     if (HIWORD(wParam) == CBN_KILLFOCUS)
                     {
                        i = (int)SendDlgItemMessage(hDlg, IDC_WAVE_CH2,
                                  CB_GETCURSEL, 0, 0) ;
                        if (i != CB_ERR)
                           sWaveCh2.wWaveform = i;
                     }
                     return TRUE;

                case IDC_WAVE_CH3 :
                     if (HIWORD(wParam) == CBN_KILLFOCUS)
                     {
                        i = (int)SendDlgItemMessage(hDlg, IDC_WAVE_CH3,
                                  CB_GETCURSEL, 0, 0) ;
                        if (i != CB_ERR)
                           sWaveCh3.wWaveform = i;
                     }
                     return TRUE;

                case IDC_MAGNITUDE_CH0 :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH0,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH0,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           sWaveCh0.fMagnitude = (float)atof(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH0,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;

                case IDC_MAGNITUDE_CH1 :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH1,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH1,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           sWaveCh1.fMagnitude = (float)atof(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH1,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;

                case IDC_MAGNITUDE_CH2 :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH2,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH2,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           sWaveCh2.fMagnitude = (float)atof(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH2,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;

                case IDC_MAGNITUDE_CH3 :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH3,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH3,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           sWaveCh3.fMagnitude = (float)atof(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_MAGNITUDE_CH3,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;

                case IDC_OFFSET_CH0 :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_OFFSET_CH0,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_OFFSET_CH0,
                                  WM_GETTEXT, 10, (LPARAM)(LPSTR)szBuffer) ;
                           sWaveCh0.fOffset = (float)atof(szBuffer);
                           SendDlgItemMessage(hDlg, IDC_OFFSET_CH0,
                                  EM_SETMODIFY, FALSE, 0) ;
                        }
                     }
                     return TRUE;

                case IDC_OFFSET_CH1 :
                     if (HIWORD(wParam) == EN_KILLFOCUS)
                     {
                        if(SendDlgItemMessage(hDlg, IDC_OFFSET_CH1,
                                  EM_GETMODIFY, 0, 0))
                        {
                           SendDlgItemMessage(hDlg, IDC_OFFSET_CH1,

⌨️ 快捷键说明

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