815 lines
21 KiB
C++
815 lines
21 KiB
C++
// Sys.cpp : Defines the class behaviors for the application.
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "Sys.h"
|
||
#include "MainFrm.h"
|
||
#include "ADFrm.h"
|
||
#include "ADDoc.h"
|
||
#include "ADDigitView.h"
|
||
#include "ADWaveView.h"
|
||
#include "ADHistFrm.h"
|
||
#include "ADHistDoc.h"
|
||
#include "ADHistDigitView.h"
|
||
#include "ADCalibration.h"
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
#include "ADStatusView.h"
|
||
#include "ParaCfgView.h"
|
||
extern CADStatusView* pADStatusView;
|
||
extern CParaCfgView* pParaCfgView;
|
||
// CSysApp
|
||
BEGIN_MESSAGE_MAP(CSysApp, CWinApp)
|
||
//{{AFX_MSG_MAP(CSysApp)
|
||
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
|
||
ON_UPDATE_COMMAND_UI(IDM_CloseFile, OnUpdateCloseFile)
|
||
ON_UPDATE_COMMAND_UI(IDM_DataFileNew, OnUpdateDataFileNew)
|
||
ON_COMMAND(IDM_CloseFile, OnCloseFile)
|
||
ON_COMMAND(IDM_DataFileNew, OnDataFileNew)
|
||
ON_COMMAND(IDM_StartDeviceAD, OnStartDeviceAD)
|
||
ON_COMMAND(IDM_StopDeviceAD, OnStopDeviceAD)
|
||
ON_UPDATE_COMMAND_UI(IDM_StopDeviceAD, OnUpdateStopDeviceAD)
|
||
ON_COMMAND(IDM_Open_AD, OnOpenAD)
|
||
ON_UPDATE_COMMAND_UI(IDM_Open_AD, OnUpdateOpenAD)
|
||
ON_COMMAND(IDM_HistoryData, OnHistoryData)
|
||
ON_UPDATE_COMMAND_UI(IDM_HistoryData, OnUpdateHistoryData)
|
||
ON_UPDATE_COMMAND_UI(IDM_Open_DA, OnUpdateOpenDA)
|
||
ON_UPDATE_COMMAND_UI(IDM_StartDeviceAD, OnUpdateStartDeviceAD)
|
||
ON_UPDATE_COMMAND_UI(IDM_MDataSave, OnUpdateDataSave)
|
||
ON_UPDATE_COMMAND_UI(IDM_MDigitalShow, OnUpdateDigitalShow)
|
||
ON_UPDATE_COMMAND_UI(IDM_MGraphicShow, OnUpdateGraphicShow)
|
||
ON_COMMAND(IDM_MDataSave, OnMDataSave)
|
||
ON_COMMAND(IDM_MDigitalShow, OnMDigitalShow)
|
||
ON_COMMAND(IDM_MGraphicShow, OnMGraphicShow)
|
||
ON_COMMAND(IDM_ListDeviceDlg, OnListDeviceDlg)
|
||
ON_COMMAND(IDM_ADCalibration, OnADCalibration)
|
||
//}}AFX_MSG_MAP
|
||
// Standard file based document commands
|
||
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
|
||
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
|
||
// Standard print setup command
|
||
ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CSysApp construction
|
||
|
||
CSysApp::CSysApp()
|
||
{
|
||
// TODO: add construction code here,
|
||
// Place all significant initialization in InitInstance
|
||
m_bCreateADFrm = FALSE;
|
||
m_bCreateDAFrm = FALSE;
|
||
m_ADFrame = NULL;
|
||
m_bDeviceCount = FALSE;
|
||
}
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// The one and only CSysApp object
|
||
|
||
CSysApp theApp;
|
||
ULONGLONG gl_ReadSizeWords; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||
ULONGLONG gl_DDR2Lenth;
|
||
ULONGLONG gl_pulDDR2Length;
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CSysApp initialization
|
||
|
||
BOOL CSysApp::InitInstance()
|
||
{
|
||
|
||
for(int i=0; i<MAX_SEGMENT; i++)
|
||
{
|
||
ADBuffer[i] = (USHORT*)ACTS1000_AllocateBuffer(MAX_RAM_SIZE*sizeof(USHORT));
|
||
}
|
||
|
||
ADDrawBuffer = (USHORT*)ACTS1000_AllocateBuffer(MAX_RAM_SIZE*sizeof(USHORT));
|
||
|
||
//CString strMutex;
|
||
TCHAR szMutex[256];
|
||
BOOL bCreate=FALSE;
|
||
//HANDLE hDevice;
|
||
//m_hDevice = INVALID_HANDLE_VALUE; // <20>ڸ<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD>ó<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ϊ<EFBFBD>豸<EFBFBD><E8B1B8>Ч
|
||
m_CurrentDeviceID=0; // ָ<><D6B8><EFBFBD><EFBFBD>ǰ<EFBFBD>豸<EFBFBD><E8B1B8>ID<49><44>ʾ<EFBFBD><CABE>
|
||
/////
|
||
int DeviceID = 0;
|
||
while (TRUE)
|
||
{
|
||
swprintf_s(szMutex, L"ACTS1000-%d", DeviceID);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
m_hMutex=::CreateMutex(NULL, NULL, szMutex); // m_pszExeNameΪ<65><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>
|
||
if (GetLastError() == ERROR_ALREADY_EXISTS) // <20>ڶ<EFBFBD><DAB6>δ<EFBFBD><CEB4><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
|
||
{
|
||
DeviceID++;
|
||
continue; // <20><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>豸<EFBFBD><E8B1B8>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
|
||
}
|
||
else
|
||
{
|
||
m_CurrentDeviceID = DeviceID;
|
||
m_hDevice = ACTS1000_CreateDevice(m_CurrentDeviceID);
|
||
if (m_hDevice == INVALID_HANDLE_VALUE)
|
||
{
|
||
AfxMessageBox(L"<EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>,<2C><><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_ICONWARNING, 0);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
/*int DeviceCount;
|
||
hDevice = ACTS1000_CreateDevice(0); // <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><F3A3ACB1><EFBFBD><EFBFBD><EFBFBD>App<70>У<EFBFBD><D0A3>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD>ʹ<EFBFBD><CAB9>
|
||
if(hDevice!=INVALID_HANDLE_VALUE) // <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
||
{
|
||
DeviceCount = ACTS1000_GetDeviceCount(hDevice);
|
||
ACTS1000_ReleaseDevice(hDevice);
|
||
}
|
||
else
|
||
{
|
||
DeviceCount = 0; // <20><><EFBFBD><EFBFBD>û<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>Ϊ0
|
||
}
|
||
|
||
for(int i=0; i<DeviceCount; i++)
|
||
{
|
||
strMutex.Format(_T("ACTS1000-%d"), i);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
m_hMutex=::CreateMutex(NULL, NULL, strMutex); // m_pszExeNameΪ<65><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>
|
||
if(GetLastError()==ERROR_ALREADY_EXISTS) // <20>ڶ<EFBFBD><DAB6>δ<EFBFBD><CEB4><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
|
||
{
|
||
bCreate=FALSE;
|
||
continue; // <20><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>豸<EFBFBD><E8B1B8>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
|
||
}
|
||
else
|
||
{
|
||
bCreate=TRUE;
|
||
m_CurrentDeviceID=i;
|
||
break;
|
||
}
|
||
|
||
}
|
||
if(DeviceCount!=0)
|
||
{
|
||
if(bCreate==FALSE) // <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD>ʱ
|
||
{
|
||
AfxMessageBox(_T("<22>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>ѱ<EFBFBD><D1B1><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>..."),MB_ICONWARNING,0);
|
||
return FALSE;
|
||
}
|
||
m_hDevice = ACTS1000_CreateDevice(m_CurrentDeviceID);
|
||
}
|
||
*/
|
||
ACTS1000_GetMainInfo(m_hDevice,&gl_ADMainInfo); // DDR2<52>ij<EFBFBD><C4B3><EFBFBD>(<28><>λ<EFBFBD><CEBB>MB)
|
||
gl_pulDDR2Length = gl_ADMainInfo.nDepthOfMemory;
|
||
gl_DDR2Lenth = gl_pulDDR2Length*1024*1024;
|
||
|
||
|
||
m_nRevisionID = 0;
|
||
if(!ACTS1000_GetBusInfo(m_hDevice, NULL, NULL, NULL, &m_nRevisionID))
|
||
{
|
||
//AfxMessageBox("<22><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣʧ<CFA2><CAA7>");
|
||
//return;
|
||
}
|
||
|
||
ACTS1000_GetSupportRangeInfo(m_hDevice, &m_nSampRangeCount,m_nSampRangeVal);
|
||
|
||
|
||
/*ULONG nInx = 0;
|
||
for (int i=0; i<m_nSampRangeCount; i++)
|
||
{
|
||
m_nSampRangeVal[i]= i;
|
||
}*/
|
||
|
||
gl_wMaxLSB = (WORD)(gl_ADMainInfo.nSampCodeCount - 1);
|
||
gl_fLsbCount = (float)gl_ADMainInfo.nSampCodeCount;
|
||
gl_lLsbHalf = (WORD)(gl_ADMainInfo.nSampCodeCount/2);
|
||
|
||
///////////////////////////////////////////////
|
||
// <20>ж<EFBFBD><D0B6>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ģʽ<C4A3>Ƿ<EFBFBD>Ϊ1024*768
|
||
int Len=GetSystemMetrics(SM_CXSCREEN); // ȡ<><C8A1><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>
|
||
if(Len<1024) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>ȴ<EFBFBD>С1024<32><34><EFBFBD><EFBFBD>
|
||
{
|
||
if(AfxMessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>1024*768<36><38><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ֱ<EFBFBD><D6B1>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),MB_ICONWARNING|MB_YESNO,0)==IDNO)
|
||
{
|
||
ExitInstance();
|
||
return FALSE;
|
||
}
|
||
}
|
||
|
||
///////////////////////////////////////////////
|
||
|
||
// Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺
|
||
AfxEnableControlContainer();
|
||
|
||
// Standard initialization
|
||
// If you are not using these features and wish to reduce the size
|
||
// of your final executable, you should remove from the following
|
||
// the specific initialization routines you do not need.
|
||
|
||
#ifdef _AFXDLL
|
||
Enable3dControls(); // Call this when using MFC in a shared DLL
|
||
#else
|
||
Enable3dControlsStatic(); // Call this when linking to MFC statically
|
||
#endif
|
||
|
||
// Change the registry key under which our settings are stored.
|
||
// TODO: You should modify this string to be something appropriate
|
||
// such as the name of your company or organization.
|
||
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
|
||
|
||
LoadStdProfileSettings(16); // Load standard INI file options (including MRU)
|
||
|
||
// Register the application's document templates. Document templates
|
||
// serve as the connection between documents, frame windows and views.
|
||
|
||
// <20><><EFBFBD><EFBFBD>AD<41>ɼ<EFBFBD>ģ<EFBFBD><C4A3>
|
||
pADTemplate = new CMultiDocTemplate(
|
||
IDR_AD,
|
||
RUNTIME_CLASS(CADDoc),
|
||
RUNTIME_CLASS(CADFrame), // custom MDI child frame
|
||
RUNTIME_CLASS(CADDigitView));
|
||
AddDocTemplate(pADTemplate);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>ݻط<DDBB>ģ<EFBFBD><C4A3>
|
||
pHistDataTemplate = new CMultiDocTemplate(
|
||
IDR_HistoryData,
|
||
RUNTIME_CLASS(CADHistDoc),
|
||
RUNTIME_CLASS(CADHistFrm), // custom MDI child frame
|
||
RUNTIME_CLASS(CADHistDigitView));
|
||
AddDocTemplate(pHistDataTemplate);
|
||
|
||
|
||
// Enable DDE Execute open
|
||
// <20><>WINDOWS<57>ǼǸó<C7B8><C3B3><EFBFBD><EFBFBD><EFBFBD>ȱʡ<C8B1><CAA1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>
|
||
EnableShellOpen();
|
||
RegisterShellFileTypes(TRUE);
|
||
|
||
// Parse command line for standard shell commands, DDE, file open
|
||
CCommandLineInfo cmdInfo;
|
||
ParseCommandLine(cmdInfo);
|
||
// Dispatch commands specified on the command line
|
||
//if (!ProcessShellCommand(cmdInfo))
|
||
// return FALSE;
|
||
|
||
|
||
// create main MDI Frame window
|
||
CMainFrame* pMainFrame = new CMainFrame;
|
||
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
|
||
return FALSE;
|
||
|
||
|
||
m_pMainWnd = pMainFrame;
|
||
|
||
|
||
// The main window has been initialized, so show and update it.
|
||
// pMainFrame->ShowWindow(m_nCmdShow);
|
||
pMainFrame->ShowWindow(SW_SHOWMAXIMIZED); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
pMainFrame->UpdateWindow();
|
||
// Enable drag/drop open
|
||
m_pMainWnd->DragAcceptFiles(); // ֧<><D6A7><EFBFBD>ϷŹ<CFB7><C5B9><EFBFBD>
|
||
|
||
::SetProp(m_pMainWnd->GetSafeHwnd(), m_pszExeName, (HANDLE)1);
|
||
|
||
LONG nPhyID = 0;
|
||
if (m_hDevice != INVALID_HANDLE_VALUE)
|
||
{
|
||
ACTS1000_GetDeviceCurrentID(m_hDevice, NULL, &nPhyID);
|
||
}
|
||
CString MainFrmName; TCHAR str[100];
|
||
switch (gl_ADMainInfo.nDeviceType>>16)
|
||
{
|
||
case PXIE_BUS:
|
||
if (m_nRevisionID >= PCIE8502D_RID && m_nRevisionID <0xFF)
|
||
{
|
||
_stprintf(str, _T("ACTS1000-PXIE%04X(%02X)-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_nRevisionID, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
}
|
||
else if (m_nRevisionID == 0)
|
||
_stprintf(str, _T("ACTS1000-PXIE%04X-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_CurrentDeviceID, nPhyID, gl_pulDDR2Length);
|
||
else
|
||
_stprintf(str, _T("ACTS1000-PXIE%04X(%C)-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF,'A'+ m_nRevisionID-1, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
|
||
|
||
|
||
/*if (m_nRevisionID >= PCIE8502D_RID && m_nRevisionID <0xFF)
|
||
{
|
||
_stprintf(str, _T("ACTS1000-PXIE%04X(%02X)-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_nRevisionID, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
}
|
||
else if (m_nRevisionID == 0x01)
|
||
{
|
||
_stprintf(str, _T("ACTS1000-PXIE%04X(A)-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
}
|
||
else
|
||
{
|
||
_stprintf(str, _T("ACTS1000-PXIE%04X-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_CurrentDeviceID, nPhyID, gl_pulDDR2Length);
|
||
}*/
|
||
break;
|
||
case PCIE_BUS:
|
||
if (m_nRevisionID >= PCIE8502D_RID && m_nRevisionID <0xFF)
|
||
{
|
||
_stprintf(str, _T("ACTS1000-PCIE%04X(%02X)-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_nRevisionID, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
}
|
||
else if (m_nRevisionID == 0)
|
||
_stprintf(str, _T("ACTS1000-PCIE%04X-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_CurrentDeviceID, nPhyID, gl_pulDDR2Length);
|
||
else
|
||
_stprintf(str, _T("ACTS1000-PCIE%04X(%C)-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF,'A'+ m_nRevisionID-1, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
|
||
|
||
/*if (m_nRevisionID >= PCIE8502D_RID && m_nRevisionID <0xFF)
|
||
{
|
||
_stprintf(str, _T("ACTS1000-PCIE%04X(%02X)-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_nRevisionID, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
}
|
||
else if (m_nRevisionID == 0x01)
|
||
{
|
||
_stprintf(str, _T("ACTS1000-PCIE%04X(A)-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
}
|
||
else
|
||
{
|
||
_stprintf(str, _T("ACTS1000-PCIE%04X-%d-%d[%dM] "), gl_ADMainInfo.nDeviceType&0xFFFF, m_CurrentDeviceID,nPhyID, gl_pulDDR2Length);
|
||
}*/
|
||
break;
|
||
default:
|
||
_stprintf(str, _T("ACTS1000-%04X-%d-[%dM] "), gl_ADMainInfo.nDeviceType, m_CurrentDeviceID,gl_pulDDR2Length);
|
||
}
|
||
|
||
|
||
MainFrmName = pMainFrame->GetTitle();
|
||
MainFrmName = str+MainFrmName;
|
||
pMainFrame->SetTitle(MainFrmName);
|
||
|
||
OnOpenAD(); // <20><><EFBFBD><EFBFBD>AD<41>豸
|
||
m_ADFrame->BringWindowToTop(); // <20><>ADģ<44><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>
|
||
|
||
// ȡ<>ò<EFBFBD><C3B2><EFBFBD>ϵͳ<CFB5>汾
|
||
DWORD dwVersion = GetVersion();
|
||
// Get the Windows version.
|
||
DWORD dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
|
||
// Get the build number.
|
||
if ((dwVersion < 0x80000000) || (dwWindowsMajorVersion < 4)) // Windows NT
|
||
gl_nSampleMode = DMA_MODE; // DMA<4D><41>ʽ
|
||
else // Windows Me/98/95
|
||
gl_nSampleMode = PRO_MODE; // <20><>ѯ<EFBFBD><D1AF>ʽ
|
||
|
||
|
||
gl_nSampleMode = PRO_MODE; // <20><>ѯ<EFBFBD><D1AF>ʽ
|
||
// CG: This line inserted by 'Tip of the Day' component.
|
||
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CAboutDlg dialog used for App About
|
||
|
||
class CAboutDlg : public CDialog
|
||
{
|
||
public:
|
||
CAboutDlg();
|
||
|
||
// Dialog Data
|
||
//{{AFX_DATA(CAboutDlg)
|
||
enum { IDD = IDD_ABOUTBOX };
|
||
//}}AFX_DATA
|
||
|
||
// ClassWizard generated virtual function overrides
|
||
//{{AFX_VIRTUAL(CAboutDlg)
|
||
protected:
|
||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||
//}}AFX_VIRTUAL
|
||
|
||
// Implementation
|
||
protected:
|
||
//{{AFX_MSG(CAboutDlg)
|
||
// No message handlers
|
||
//}}AFX_MSG
|
||
DECLARE_MESSAGE_MAP()
|
||
public:
|
||
afx_msg void OnBnClickedButtonSet();
|
||
public:
|
||
virtual BOOL OnInitDialog();
|
||
};
|
||
|
||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||
{
|
||
//{{AFX_DATA_INIT(CAboutDlg)
|
||
//}}AFX_DATA_INIT
|
||
}
|
||
|
||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
//{{AFX_DATA_MAP(CAboutDlg)
|
||
//}}AFX_DATA_MAP
|
||
}
|
||
|
||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||
//{{AFX_MSG_MAP(CAboutDlg)
|
||
// No message handlers
|
||
//}}AFX_MSG_MAP
|
||
ON_BN_CLICKED(IDC_BUTTON_Set, &CAboutDlg::OnBnClickedButtonSet)
|
||
END_MESSAGE_MAP()
|
||
|
||
// App command to run the dialog
|
||
void CSysApp::OnAppAbout()
|
||
{
|
||
CAboutDlg aboutDlg;
|
||
aboutDlg.DoModal();
|
||
}
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CSysApp message handlers
|
||
|
||
|
||
|
||
void CSysApp::OnUpdateOpenAD(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
pCmdUI->Enable(this->m_bCreateADFrm==FALSE?1:0);
|
||
}
|
||
|
||
void CSysApp::OnOpenAD(void)
|
||
{
|
||
if (m_ADFrame != NULL)
|
||
{
|
||
m_ADFrame->BringWindowToTop();
|
||
return;
|
||
}
|
||
BeginWaitCursor(); // <20><>ʼ©<CABC><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
CDocument* pDoc;
|
||
pDoc=pADTemplate->CreateNewDocument(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
||
m_pADDoc=(CADDoc*)pDoc; // <20><><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
||
m_ADFrame=(CADFrame*)pADTemplate->CreateNewFrame(pDoc, NULL);
|
||
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD><CFB5>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ʵ<EFBFBD><CAB5>
|
||
// <20><>ʼ<EFBFBD><CABC>FRAME<4D><45>֡<EFBFBD><D6A1><EFBFBD>ڣ<EFBFBD><DAA3>Ҵ<EFBFBD><D2B4><EFBFBD>FRAME<4D><45>OnUpdate<74><65><EFBFBD><EFBFBD>
|
||
pADTemplate->InitialUpdateFrame(m_ADFrame, pDoc);
|
||
pDoc->SetTitle(_T("AD<EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><EFBFBD><EFBFBD>"));
|
||
|
||
if(pADStatusView != NULL)
|
||
{
|
||
pDoc->AddView ((CView*)pADStatusView);
|
||
}
|
||
if(pParaCfgView != NULL)
|
||
{
|
||
pDoc->AddView((CView*)pParaCfgView);
|
||
}
|
||
|
||
EndWaitCursor(); // ֹͣ©<D6B9><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
}
|
||
|
||
void CSysApp::OnHistoryData()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
CString strNewFileName;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ի<EFBFBD><D4BB><EFBFBD>
|
||
if (!(DoPromptFileName(strNewFileName, IDS_ProccessHistoryData,
|
||
OFN_HIDEREADONLY , TRUE, NULL))) // OFN_CREATEPROMPT:<3A><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>½<EFBFBD>
|
||
return;
|
||
|
||
// CFile file;
|
||
// CFileStatus status;
|
||
// if (!file.GetStatus(strNewFileName, status))
|
||
// {
|
||
// strNewFileName=strNewFileName+" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||
// AfxMessageBox(strNewFileName,MB_ICONSTOP, 0);
|
||
// return; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||
// }
|
||
|
||
CFile File;
|
||
FILE_HEADER m_Header;
|
||
|
||
//File.Open(strNewFileName, GENERIC_READ);
|
||
if (!File.Open(strNewFileName, GENERIC_READ))
|
||
{
|
||
AfxMessageBox(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||
return ;
|
||
}
|
||
File.Seek(0,CFile::begin);
|
||
int a =File.Read((WORD*)&m_Header,sizeof(m_Header)); // <20>ļ<EFBFBD><C4BC><EFBFBD>Ϣ<EFBFBD><CFA2>HistDigitView<65>ཫ<EFBFBD><E0BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>HistDataFrm<72>ĶԻ<C4B6><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OnInitialUpdate
|
||
File.Close();
|
||
if (a == 0)
|
||
{
|
||
AfxMessageBox(L"<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>СΪ0");
|
||
return;
|
||
}
|
||
|
||
CADHistDoc* pDoc;
|
||
BeginWaitCursor(); // <20><>ʼ©<CABC><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
pDoc=(CADHistDoc*)pHistDataTemplate->OpenDocumentFile(strNewFileName); // <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>pDoc<6F><63><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>OnOpenDocument
|
||
EndWaitCursor(); // ֹͣ©<D6B9><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
}
|
||
|
||
void CSysApp::OnUpdateHistoryData(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
|
||
}
|
||
|
||
|
||
|
||
void CSysApp::OnUpdateDataFileNew(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
pCmdUI->Enable((!gl_bDeviceADRun)&&m_bFirstCreateDeviceFile);
|
||
}
|
||
|
||
void CSysApp::OnCloseFile()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
m_pADDoc->OnCloseFile();
|
||
}
|
||
|
||
void CSysApp::OnDataFileNew()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
m_pADDoc->OnDataFileNew();
|
||
}
|
||
|
||
void CSysApp::OnUpdateOpenDA(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
}
|
||
|
||
void CSysApp::OnStartDeviceAD()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
m_pADDoc->StartDeviceAD();
|
||
}
|
||
|
||
void CSysApp::OnUpdateStartDeviceAD(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
pCmdUI->Enable(gl_bDeviceADRun==FALSE?1:0);
|
||
}
|
||
|
||
void CSysApp::OnStopDeviceAD()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
m_pADDoc->StopDeviceAD();
|
||
}
|
||
|
||
void CSysApp::OnUpdateStopDeviceAD(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
pCmdUI->Enable(gl_bDeviceADRun==TRUE?1:0);
|
||
}
|
||
|
||
void CSysApp::OnUpdateCloseFile(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
pCmdUI->SetRadio (FALSE);
|
||
if((nProcessMode == SAVE_MODE) && (bCreateDevice))
|
||
pCmdUI->Enable(FALSE);
|
||
else
|
||
pCmdUI->Enable(!m_bCloseFile);
|
||
}
|
||
|
||
void CSysApp::OnUpdateDataSave(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
if(pADStatusView != NULL)
|
||
pADStatusView->SetDlgCheck();
|
||
if(m_bFirstCreateDeviceFile)
|
||
pCmdUI->Enable(FALSE);
|
||
pCmdUI->SetCheck(nProcessMode == SAVE_MODE ? 1:0);
|
||
}
|
||
|
||
void CSysApp::OnUpdateDigitalShow(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
pCmdUI->SetCheck(nProcessMode == DATA_MODE ? 1:0);
|
||
if(pADStatusView != NULL)
|
||
pADStatusView->SetDlgCheck();
|
||
CSysApp *pApp=(CSysApp *)AfxGetApp();
|
||
|
||
CADDoc* pDoc=pApp->m_pADDoc;
|
||
// <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͼָ<CDBC><D6B8>
|
||
CADDigitView* pDigitView=(CADDigitView*)(CWnd::FromHandle(pDoc->m_hWndDigit));
|
||
if(nProcessMode == SAVE_MODE) // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>̷<EFBFBD>ʽ
|
||
{
|
||
pDigitView->EnableWindow(FALSE);
|
||
}
|
||
else
|
||
{
|
||
pDigitView->EnableWindow(TRUE);
|
||
}
|
||
}
|
||
|
||
void CSysApp::OnUpdateGraphicShow(CCmdUI* pCmdUI)
|
||
{
|
||
// TODO: Add your command update UI handler code here
|
||
if(pADStatusView != NULL)
|
||
pADStatusView->SetDlgCheck();
|
||
pCmdUI->SetCheck(nProcessMode == WAVE_MODE ? 1:0);
|
||
CSysApp *pApp=(CSysApp *)AfxGetApp();
|
||
CADDoc* pDoc=pApp->m_pADDoc;
|
||
// <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͼָ<CDBC><D6B8>
|
||
|
||
CADWaveView* pWaveView=(CADWaveView*)(CWnd::FromHandle(pDoc->m_hWndWave));
|
||
|
||
if(nProcessMode == SAVE_MODE) // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>̷<EFBFBD>ʽ
|
||
{
|
||
pWaveView->EnableWindow(FALSE);
|
||
}
|
||
else
|
||
{
|
||
pWaveView->EnableWindow(TRUE);
|
||
}
|
||
}
|
||
|
||
void CSysApp::OnMDataSave()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
nProcessMode = SAVE_MODE;
|
||
if(pADStatusView != NULL)
|
||
pADStatusView->SetDlgCheck();
|
||
}
|
||
|
||
void CSysApp::OnMDigitalShow()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
nProcessMode = DATA_MODE;
|
||
if(pADStatusView != NULL)
|
||
pADStatusView->SetDlgCheck();
|
||
}
|
||
|
||
void CSysApp::OnMGraphicShow()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
nProcessMode = WAVE_MODE;
|
||
if(pADStatusView != NULL)
|
||
pADStatusView->SetDlgCheck();
|
||
}
|
||
|
||
CDocument* CSysApp::OpenDocumentFile(LPCTSTR lpszFileName)
|
||
{
|
||
// TODO: Add your specialized code here and/or call the base class
|
||
CString str;
|
||
// CFile file;
|
||
// CFileStatus status;
|
||
// if (!file.GetStatus(lpszFileName, status))
|
||
// {
|
||
// str=lpszFileName;
|
||
// str=str+" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||
// AfxMessageBox(lpszFileName,MB_ICONSTOP, 0);
|
||
// return NULL; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||
// }
|
||
//
|
||
CFile File;
|
||
FILE_HEADER m_Header;
|
||
//File.Open(lpszFileName, GENERIC_READ);
|
||
if (!File.Open(lpszFileName, GENERIC_READ))
|
||
{
|
||
AfxMessageBox(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||
return NULL;
|
||
}
|
||
File.Seek(0, CFile::begin);
|
||
File.Read((WORD*)&m_Header, sizeof(m_Header)); // <20>ļ<EFBFBD><C4BC><EFBFBD>Ϣ<EFBFBD><CFA2>HistDigitView<65>ཫ<EFBFBD><E0BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>HistDataFrame<6D>ĶԻ<C4B6><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OnInitialUpdate
|
||
File.Close();
|
||
if(m_Header.DeviceNum != DEFAULT_DEVICE_NUM)
|
||
{
|
||
if(AfxMessageBox(_T("<EFBFBD>Բ<EFBFBD><EFBFBD>𣬸<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>, <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>"),MB_YESNO, 0)==IDNO)
|
||
return NULL;
|
||
//bFile = FALSE;
|
||
}
|
||
|
||
CADHistDoc* pDoc;
|
||
BeginWaitCursor(); // <20><>ʼ©<CABC><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
pDoc=(CADHistDoc*)pHistDataTemplate->OpenDocumentFile(lpszFileName); // <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>pDoc<6F><63><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>OnOpenDocument
|
||
str = lpszFileName;
|
||
//str="<22><>ʷ<EFBFBD><CAB7><EFBFBD>ݣ<EFBFBD>"+ str;
|
||
str="<EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>";
|
||
pDoc->SetTitle(str); // <20><><EFBFBD>ĵ<EFBFBD><C4B5>±<EFBFBD><C2B1><EFBFBD>
|
||
EndWaitCursor(); // ֹͣ©<D6B9><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
return pDoc;
|
||
//return CWinApp::OpenDocumentFile(lpszFileName);
|
||
}
|
||
|
||
void CSysApp::OnListDeviceDlg()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
ACTS1000_ListDeviceDlg(m_hDevice); // <20>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸
|
||
}
|
||
|
||
int CSysApp::ExitInstance()
|
||
{
|
||
// TODO: Add your specialized code here and/or call the base class
|
||
|
||
ReleaseMutex(m_hMutex);
|
||
if(m_hDevice != INVALID_HANDLE_VALUE)
|
||
{
|
||
ACTS1000_ReleaseDevice(m_hDevice);
|
||
m_hDevice = INVALID_HANDLE_VALUE;
|
||
}
|
||
for(int i=0; i<MAX_SEGMENT; i++)
|
||
{
|
||
ACTS1000_FreeBuffer(ADBuffer[i]);
|
||
}
|
||
ACTS1000_FreeBuffer(ADDrawBuffer);
|
||
|
||
return CWinApp::ExitInstance();
|
||
}
|
||
|
||
|
||
void CSysApp::OnADCalibration()
|
||
{
|
||
// TODO: Add your command handler code here
|
||
CADCalibration dlg;
|
||
dlg.DoModal();
|
||
}
|
||
|
||
void CAboutDlg::OnBnClickedButtonSet()
|
||
{
|
||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
if (theApp.m_hDevice != INVALID_HANDLE_VALUE)
|
||
{
|
||
CString str;
|
||
LONG nPhysIdx;
|
||
ULONG nSerialNum, nPassWord;
|
||
CEdit* pEdit;
|
||
|
||
pEdit = (CEdit*)GetDlgItem(IDC_EDIT_PhysID);
|
||
pEdit->GetWindowText(str);
|
||
nPhysIdx = _tcstoul(str, NULL, 10);
|
||
if (nPhysIdx>255)
|
||
{
|
||
nPhysIdx = 255;
|
||
}
|
||
|
||
|
||
pEdit = (CEdit*)GetDlgItem(IDC_EDIT_SN);
|
||
pEdit->GetWindowText(str);
|
||
nSerialNum = _tcstoul(str, NULL, 10);
|
||
|
||
pEdit = (CEdit*)GetDlgItem(IDC_EDIT_PassWord);
|
||
pEdit->GetWindowText(str);
|
||
nPassWord = _tcstoul(str, NULL, 10);
|
||
|
||
|
||
|
||
ACTS1000_SetDevicePhysID(theApp.m_hDevice, nPhysIdx);
|
||
|
||
ACTS1000_SetPassword(nPassWord);
|
||
if (!ACTS1000_SetSerialNum(theApp.m_hDevice, nSerialNum))
|
||
{
|
||
AfxMessageBox(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
||
}
|
||
}
|
||
}
|
||
|
||
BOOL CAboutDlg::OnInitDialog()
|
||
{
|
||
CDialog::OnInitDialog();
|
||
|
||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC>
|
||
|
||
|
||
|
||
if (theApp.m_hDevice != INVALID_HANDLE_VALUE)
|
||
{
|
||
CString str;
|
||
ULONG nSerialNum;
|
||
LONG nPhysIdx, nDeviceLgcID;
|
||
ACTS1000_GetDeviceCurrentID(theApp.m_hDevice, &nDeviceLgcID, &nPhysIdx);
|
||
ACTS1000_GetSerialNum(theApp.m_hDevice, &nSerialNum);
|
||
|
||
CEdit* pEdit;
|
||
pEdit = (CEdit*)GetDlgItem(IDC_EDIT_PhysID);
|
||
str.Format(L"%u", nPhysIdx);
|
||
pEdit->SetWindowText(str);
|
||
|
||
pEdit = (CEdit*)GetDlgItem(IDC_EDIT_SN);
|
||
str.Format(L"%u", nSerialNum);
|
||
pEdit->SetWindowText(str);
|
||
|
||
|
||
CString strVer;
|
||
ULONG ulFmwVersion, ulDriverVersion;
|
||
if (ACTS1000_GetDevVersion(theApp.m_hDevice, &ulFmwVersion, &ulDriverVersion))
|
||
{
|
||
CStatic* pStatic;
|
||
|
||
pStatic = (CStatic*)GetDlgItem(IDC_STATIC_FmwVersion);
|
||
str.Format(_T("%u"),ulFmwVersion);
|
||
pStatic->SetWindowText(str);
|
||
|
||
pStatic = (CStatic*)GetDlgItem(IDC_STATIC_DriverVersion);
|
||
str.Format(_T("%u"),ulDriverVersion);
|
||
pStatic->SetWindowText(str);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
|
||
}
|