655 lines
18 KiB
C++
655 lines
18 KiB
C++
|
|
// ADDoc.cpp : implementation of the CADDoc class
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#include "stdafx.h"
|
|||
|
|
#include "Sys.h"
|
|||
|
|
#include "ADDoc.h"
|
|||
|
|
#include "ADDigitView.h"
|
|||
|
|
#include "ADWaveView.h"
|
|||
|
|
#include "ADStatusView.h"
|
|||
|
|
#include "ParaCfgView.h"
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
#define new DEBUG_NEW
|
|||
|
|
#undef THIS_FILE
|
|||
|
|
static char THIS_FILE[] = __FILE__;
|
|||
|
|
#endif
|
|||
|
|
#ifdef ACTS1000_CreateSystemEvent
|
|||
|
|
#define ACTS1000_CreateSystemEvent ACTS1000_TCreateSystemEvent
|
|||
|
|
#endif
|
|||
|
|
////////////////////////////////////////////////////////////////////////
|
|||
|
|
WORD* ADBuffer[MAX_SEGMENT]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WORD* ADDrawBuffer; // <20><><EFBFBD><EFBFBD>ˢ<EFBFBD>»<EFBFBD><C2BB><EFBFBD>
|
|||
|
|
|
|||
|
|
BOOL m_bDrawComp= FALSE;
|
|||
|
|
BOOL gl_bAutoCollect = FALSE;
|
|||
|
|
int CurrentIndex; // AD<41><44><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>̵߳<DFB3>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int ReadIndex; // AD<41><44><EFBFBD>ݲɼ<DDB2><C9BC>̵߳<DFB3>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BOOL gl_bDeviceADRun=FALSE;
|
|||
|
|
BOOL gl_bAutoTrig=TRUE;
|
|||
|
|
ACTS1000_PARA_AD ADPara;
|
|||
|
|
ACTS1000_PARA_AD OldADPara;
|
|||
|
|
ACTS1000_STATUS_AD gl_ADStatus;
|
|||
|
|
ACTS1000_AD_MAIN_INFO gl_ADMainInfo;
|
|||
|
|
WORD gl_wMaxLSB = 0x3FFF;
|
|||
|
|
float gl_fLsbCount = 16384.0;
|
|||
|
|
WORD gl_lLsbHalf = 8192;
|
|||
|
|
//BOOL bCheckOverflow=FALSE; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>FIFO<46><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
int gl_nSampleMode = PRO_MODE; // <20>ɼ<EFBFBD>ģʽ(1,<2C><>ѯ<EFBFBD><D1AF> 2, <20>жϣ<D0B6> 3<><33> DMA)
|
|||
|
|
UINT ReadDataThread(PVOID hWnd);//<2F><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|||
|
|
UINT ProccessDataThread(PVOID hWnd); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|||
|
|
|
|||
|
|
BOOL m_bFirstCreateDeviceFile;
|
|||
|
|
int m_ProcessGraphicMode;//Ϊ1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
|
BOOL m_AnalyzeCheck;//<2F><><EFBFBD>ƾ<EFBFBD><C6BE>ȷ<EFBFBD><C8B7><EFBFBD>
|
|||
|
|
int gl_ScreenVolume;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int m_TriggerVolt;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ
|
|||
|
|
int gl_MiddleLsb[MAX_CHANNEL_COUNT];
|
|||
|
|
float m_AnalyzeAllCount;
|
|||
|
|
UINT m_OverLimitCount;
|
|||
|
|
int m_ProcessMoveVolt;//Ϊ1ʱ,ƽ<>Ƶ<EFBFBD>ѹ
|
|||
|
|
BOOL bCreateDevice;
|
|||
|
|
BOOL m_bProgress; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nProcessMode; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>ʽ 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ 3<><33><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
|
CEdit* pCountEdit;
|
|||
|
|
CEdit* pRangeEdit;
|
|||
|
|
CEdit* pRatioEdit;
|
|||
|
|
CADDigitView* m_pDigitView;
|
|||
|
|
CADWaveView* m_pWaveView;
|
|||
|
|
CADStatusView* pADStatusView = NULL;
|
|||
|
|
CParaCfgView* pParaCfgView = NULL;
|
|||
|
|
HANDLE hEvent; // <20>ɼ<EFBFBD><C9BC>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵߳<DFB3>ͬ<EFBFBD><CDAC><EFBFBD>ź<EFBFBD>
|
|||
|
|
int m_DigitalDataShowMode; // <20><><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ʾģʽ
|
|||
|
|
int DeviceID; // <20>ó<EFBFBD><C3B3><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>豸ID
|
|||
|
|
HANDLE g_ArrFileOut;
|
|||
|
|
|
|||
|
|
int gl_nChannelCount = MAX_CHANNEL_COUNT;
|
|||
|
|
int gl_nSaveFileCount = MAX_CHANNEL_COUNT;
|
|||
|
|
|
|||
|
|
BOOL m_bCloseFile;
|
|||
|
|
HANDLE hExitEvent;
|
|||
|
|
float Center, PerY;
|
|||
|
|
CRect ClientRect;
|
|||
|
|
float middle1;
|
|||
|
|
BOOL bDrawing=FALSE;
|
|||
|
|
|
|||
|
|
ULONGLONG FileLenghtWords;
|
|||
|
|
int nChannelArrayClient[MAX_CHANNEL_COUNT];// ͨ<><CDA8><EFBFBD><EFBFBD>
|
|||
|
|
int gl_CurrentbufNum = 0; // <20><>ǰ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int DisplayChannel[MAX_CHANNEL_COUNT];// <20><><EFBFBD>ڱ<EFBFBD>־<EFBFBD><D6BE>ͨ<EFBFBD><CDA8><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ
|
|||
|
|
float OutAnalogValve; // <20><>ʾģ<CABE><C4A3><EFBFBD>ⴥ<EFBFBD><E2B4A5><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
|
|||
|
|
ULONG gl_nSampleLenth = MAX_RAM_SIZE; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int gl_InputRange[MAX_CHANNEL_COUNT]; // <20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>õĵ<C3B5>ѹ<EFBFBD><D1B9><EFBFBD>̷<EFBFBD>Χ
|
|||
|
|
float gl_PerLsbVoltM[MAX_CHANNEL_COUNT]; // <20><>λLSB<53>ĵ<EFBFBD>ѹֵ
|
|||
|
|
CString g_strFileFullName;
|
|||
|
|
ULONG gl_StartAddr;
|
|||
|
|
|
|||
|
|
TCHAR g_strChannelEn[2][64] = { L"<EFBFBD><EFBFBD>ֹ", L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" };
|
|||
|
|
TCHAR g_strGain[4][64] = { L"1<EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>", L"2<EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>", L"4<EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>", L"8<EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>" };
|
|||
|
|
TCHAR g_strRefGround[3][64] = { L"ֱ<EFBFBD><EFBFBD>", L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"};
|
|||
|
|
TCHAR g_strAIRange[3][64] = {L"<EFBFBD><EFBFBD>5V", L"<EFBFBD><EFBFBD>1V", L"<EFBFBD><EFBFBD>10V"};
|
|||
|
|
TCHAR g_strInputImped[2][64] = {L"1M<EFBFBD><EFBFBD>", L"50<EFBFBD><EFBFBD>"};
|
|||
|
|
|
|||
|
|
ULONG m_nSampRangeCount;
|
|||
|
|
ULONG m_nSampRangeVal[8];
|
|||
|
|
|
|||
|
|
ULONG gl_CHIdx[MAX_CHANNEL_COUNT] =
|
|||
|
|
{
|
|||
|
|
0,1,2,3,4,5,6,7
|
|||
|
|
};
|
|||
|
|
CCriticalSection gl_Section;
|
|||
|
|
ULONG gl_nDrawLen = 1024;
|
|||
|
|
|
|||
|
|
ULONG gl_nDocDrawLen = 1024;
|
|||
|
|
|
|||
|
|
ULONG gl_nDrawIdx = 0;
|
|||
|
|
ULONG gl_nDocDrawIdx = 0;
|
|||
|
|
//##############################################
|
|||
|
|
//ʹ<>ö<EFBFBD>ý<EFBFBD>嶨ʱ<E5B6A8><CAB1><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>50֡<30><D6A1><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5>ٶ<EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD>Ļ
|
|||
|
|
#include "stdio.h"
|
|||
|
|
#include "MmSystem.h"
|
|||
|
|
|
|||
|
|
void PASCAL DrawWindowProc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2);
|
|||
|
|
#define ONE_MILLI_SECOND 1
|
|||
|
|
#define TWO_SECOND 2000
|
|||
|
|
// <20><> <20><> ʱ <20><> <20><> <20><> <20>ʣ<EFBFBD> <20><> <20><> <20><> Ϊ <20><> λ ----
|
|||
|
|
#define TIMER_ACCURACY 1
|
|||
|
|
UINT wAccuracy; // <20><> <20><> <20><> <20><> <20><>
|
|||
|
|
UINT TimerID; // <20><> <20><> <20><> ʱ <20><> <20><> <20><>
|
|||
|
|
|
|||
|
|
////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// CADDoc
|
|||
|
|
|
|||
|
|
IMPLEMENT_DYNCREATE(CADDoc, CDocument)
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CADDoc, CDocument)
|
|||
|
|
//{{AFX_MSG_MAP(CADDoc)
|
|||
|
|
ON_COMMAND(IDM_TileWave, OnTileWave)
|
|||
|
|
ON_COMMAND(IDM_SuperPoseWave, OnSuperPoseWave)
|
|||
|
|
ON_UPDATE_COMMAND_UI(IDM_SuperPoseWave, OnUpdateSuperPoseWave)
|
|||
|
|
ON_UPDATE_COMMAND_UI(IDM_TileWave, OnUpdateTileWave)
|
|||
|
|
//}}AFX_MSG_MAP
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
///////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// CADDoc construction/destruction
|
|||
|
|
|
|||
|
|
extern CSysApp theApp;
|
|||
|
|
CADDoc::CADDoc()
|
|||
|
|
{
|
|||
|
|
// TODO: add one-time construction code here
|
|||
|
|
m_bProgress=FALSE; // һ<><D2BB>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
nProcessMode = DATA_MODE; // Ĭ<>Ϸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
|
m_TriggerVolt=(int)VOLT_RANGE; // <20>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>ij<EFBFBD>ֵΪ<D6B5><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
m_bFirstCreateDeviceFile=TRUE; // һ<><D2BB>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA>һ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
m_bCloseFile=TRUE; // û<>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ر<EFBFBD>
|
|||
|
|
gl_nChannelCount=0;
|
|||
|
|
ACTS1000_LoadParaAD(theApp.m_hDevice, &ADPara); // <20><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
for (int i=gl_ADMainInfo.nChannelCount; i<ACTS1000_AD_MAX_CHANNELS; i++)
|
|||
|
|
{
|
|||
|
|
ADPara.bChannelArray[i] = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (int nCH=0; nCH<gl_ADMainInfo.nChannelCount; nCH++)
|
|||
|
|
{
|
|||
|
|
if (ADPara.bChannelArray[nCH])
|
|||
|
|
{
|
|||
|
|
gl_nChannelCount++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//gl_nChannelCount = MAX_CHANNEL_COUNT;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CADDoc::~CADDoc()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BOOL CADDoc::OnNewDocument()
|
|||
|
|
{
|
|||
|
|
if (!CDocument::OnNewDocument())
|
|||
|
|
return FALSE;
|
|||
|
|
|
|||
|
|
// TODO: add reinitialization code here
|
|||
|
|
// (SDI documents will reuse this document)
|
|||
|
|
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// CADDoc serialization
|
|||
|
|
|
|||
|
|
void CADDoc::Serialize(CArchive& ar)
|
|||
|
|
{
|
|||
|
|
if (ar.IsStoring())
|
|||
|
|
{
|
|||
|
|
// TODO: add storing code here
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
// TODO: add loading code here
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// CADDoc diagnostics
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
void CADDoc::AssertValid() const
|
|||
|
|
{
|
|||
|
|
CDocument::AssertValid();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CADDoc::Dump(CDumpContext& dc) const
|
|||
|
|
{
|
|||
|
|
CDocument::Dump(dc);
|
|||
|
|
}
|
|||
|
|
#endif //_DEBUG
|
|||
|
|
|
|||
|
|
BOOL gl_bTerminateDrawThr = TRUE;
|
|||
|
|
void CADDoc::StartDeviceAD()
|
|||
|
|
{
|
|||
|
|
CSysApp *pApp=(CSysApp *)AfxGetApp();
|
|||
|
|
////////////////////////////////////////////////////////////////////////
|
|||
|
|
if(pApp->m_hDevice==INVALID_HANDLE_VALUE)
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T("<EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."),MB_ICONERROR);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if(!gl_bTerminateDrawThr)
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T(" <20>߳<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ֹ"));
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
FileLenghtWords = 0; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ȳ<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
|
m_DrawWindowThread = AfxBeginThread(ProccessDataThread,NULL, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
|
|||
|
|
m_DrawWindowThread->m_bAutoDelete = TRUE; // <20>Զ<EFBFBD>ɾ<EFBFBD><C9BE>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC>봰<EFBFBD>ڻ<EFBFBD><DABB><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
hEvent = ACTS1000_CreateSystemEvent();
|
|||
|
|
hExitEvent = ACTS1000_CreateSystemEvent();
|
|||
|
|
bCollectData=TRUE; // <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACBF>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>
|
|||
|
|
// for(int i=0;i<MAX_CHANNEL_COUNT;i++)
|
|||
|
|
// gl_MiddleLsb[i]=0;
|
|||
|
|
|
|||
|
|
|
|||
|
|
if(!m_bFirstCreateDeviceFile) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
header.HeadSizeBytes = sizeof(FILE_HEADER); // ͷ<><CDB7>Ϣ<EFBFBD><CFA2>С
|
|||
|
|
header.FileType = DEFAULT_FILE_TYPE;
|
|||
|
|
header.BusType = gl_ADMainInfo.nDeviceType>>16; // <20><><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
header.DeviceNum = DEFAULT_DEVICE_NUM;
|
|||
|
|
header.DeviceType = gl_ADMainInfo.nDeviceType&0xFFFF; // <20>豸ID<49><44>
|
|||
|
|
header.ChannelCount = gl_nChannelCount; // ÿͨ<C3BF><CDA8><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>Ϊ1
|
|||
|
|
header.DataWidth = gl_ADMainInfo.nSampResolution; // 12λ
|
|||
|
|
header.bXorHighBit = 0; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
header.nRevisionID = theApp.m_nRevisionID;
|
|||
|
|
|
|||
|
|
ULONG nSampRangeCount;
|
|||
|
|
ULONG nSampRangeVal[8];
|
|||
|
|
if (!ACTS1000_GetSupportRangeInfo(theApp.m_hDevice, &nSampRangeCount,nSampRangeVal))
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(L"<EFBFBD><EFBFBD>ȥ֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣʧ<EFBFBD><EFBFBD>",MB_ICONWARNING,0);
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
switch(ADPara.InputRange[0]) // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
case ACTS1000_INPUT_N1000_P1000mV: // <20><>1000<30><30><EFBFBD><EFBFBD>
|
|||
|
|
header.VoltTopRange = 1000;
|
|||
|
|
header.VoltBottomRange = -1000;
|
|||
|
|
break;
|
|||
|
|
case ACTS1000_INPUT_N10000_P10000mV: // <20><>5000<30><30><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
header.VoltTopRange = 10000;
|
|||
|
|
header.VoltBottomRange = -10000;
|
|||
|
|
break;
|
|||
|
|
case ACTS1000_INPUT_N5000_P5000mV:
|
|||
|
|
header.VoltTopRange = 5000;
|
|||
|
|
header.VoltBottomRange = -5000;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
header.ADPara = ADPara;
|
|||
|
|
header.CrystalFreq = gl_ADMainInfo.nBaseRate; // <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
|||
|
|
header.HeadEndFlag = HEAD_END_FLAG;
|
|||
|
|
header.ADStatus = gl_ADStatus;
|
|||
|
|
|
|||
|
|
time_t nowtime;
|
|||
|
|
time(&nowtime);
|
|||
|
|
header.CreateFTime = (ULONGLONG)nowtime;
|
|||
|
|
memcpy(&header.ADMainInfo, &gl_ADMainInfo, sizeof(gl_ADMainInfo));
|
|||
|
|
|
|||
|
|
// д<>ļ<EFBFBD>ͷ
|
|||
|
|
// g_ArrFileOut[Index].Write((WORD*)&header, header.HeadSizeBytes);
|
|||
|
|
DWORD dTmp;
|
|||
|
|
if (!WriteFile(g_ArrFileOut, (WORD*)&header, header.HeadSizeBytes,
|
|||
|
|
&dTmp, NULL))
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(L"error");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
|||
|
|
CADDigitView* pDigitView=(CADDigitView*)(CWnd::FromHandle(m_hWndDigit));
|
|||
|
|
CADWaveView* pWaveView=(CADWaveView*)(CWnd::FromHandle(m_hWndWave));
|
|||
|
|
CADFrame* pShow=((CSysApp*)AfxGetApp())->m_ADFrame ; // ȡ<><C8A1><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>
|
|||
|
|
|
|||
|
|
CProgressCtrl* pProgress=(CProgressCtrl*)(pShow->m_wndShowStatus.GetDlgItem(IDC_PROGRESS));
|
|||
|
|
pProgress->SetPos(0); // <20>ͷ<EFBFBD><CDB7>豸ʱ<E8B1B8><CAB1><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֵ
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>豸
|
|||
|
|
if(!MyStartDeviceAD(pApp->m_hDevice)) // <20><><EFBFBD><EFBFBD><EFBFBD>豸,<2C><>ʼ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T("<EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>"));
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
gl_bDeviceADRun = TRUE;
|
|||
|
|
if(pParaCfgView != NULL)
|
|||
|
|
{
|
|||
|
|
pParaCfgView->EnableWindows(FALSE); // <20><><EFBFBD>豸<EFBFBD><E8B1B8>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
pParaCfgView->StartAD();
|
|||
|
|
}
|
|||
|
|
m_DrawWindowThread->ResumeThread(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD><EFBFBD>߳<EFBFBD>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BOOL gl_Event = FALSE;
|
|||
|
|
//################### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD> ################################################3###
|
|||
|
|
UINT ProccessDataThread(PVOID hWnd)
|
|||
|
|
{
|
|||
|
|
CSysApp *pApp=(CSysApp *)AfxGetApp();
|
|||
|
|
CADFrame *pFrm=pApp->m_ADFrame ;
|
|||
|
|
CADDoc* pDoc=pApp->m_pADDoc;
|
|||
|
|
// <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͼָ<CDBC><D6B8>
|
|||
|
|
CADDigitView* pDigitView=(CADDigitView*)(CWnd::FromHandle(pDoc->m_hWndDigit));
|
|||
|
|
CADWaveView* pWaveView=(CADWaveView*)(CWnd::FromHandle(pDoc->m_hWndWave));
|
|||
|
|
CString str;
|
|||
|
|
BOOL bFirst=TRUE;
|
|||
|
|
ULONG WroteMB=0;
|
|||
|
|
|
|||
|
|
pDoc->m_Wrote8KWCounter=0;
|
|||
|
|
pDoc->m_WroteMB=0;
|
|||
|
|
CurrentIndex=0;
|
|||
|
|
int ShowCount=0,i;
|
|||
|
|
ULONG ulTime = 0;
|
|||
|
|
ULONG nDrawL = 0;
|
|||
|
|
ULONG nDrawI = 0;
|
|||
|
|
while(gl_bDeviceADRun) // ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AD<41><44><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
do{
|
|||
|
|
if(!gl_bDeviceADRun) goto ExitProcDataThread;
|
|||
|
|
} while(WaitForSingleObject(hEvent, 100) != WAIT_OBJECT_0);
|
|||
|
|
gl_bTerminateDrawThr = FALSE;
|
|||
|
|
gl_Event = TRUE;
|
|||
|
|
switch(nProcessMode) // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
|
{
|
|||
|
|
case DATA_MODE: // <20><><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
|
if ((GetTickCount()-ulTime)>100)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
gl_Section.Lock();
|
|||
|
|
nDrawL =gl_nDrawLen;
|
|||
|
|
nDrawI =gl_nDrawIdx;
|
|||
|
|
gl_nDocDrawLen = gl_nDrawLen;
|
|||
|
|
gl_nDocDrawIdx =gl_nDrawIdx;
|
|||
|
|
gl_Section.Unlock();
|
|||
|
|
::SendMessage(pDoc->m_hWndDigit, WM_SHOWDIGIT, nDrawL, nDrawI);
|
|||
|
|
m_bProgress=TRUE; // ʹOnDraw<61><77><EFBFBD><EFBFBD><EFBFBD>ܸ<EFBFBD><DCB8>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ulTime = GetTickCount();
|
|||
|
|
}
|
|||
|
|
/*else
|
|||
|
|
{
|
|||
|
|
if (gl_bSmlThenSize)
|
|||
|
|
{
|
|||
|
|
gl_bSmlThenSize = FALSE;
|
|||
|
|
}
|
|||
|
|
}*/
|
|||
|
|
break;
|
|||
|
|
case WAVE_MODE: // <20><><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>
|
|||
|
|
if ((GetTickCount()-ulTime)>120)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
|
|||
|
|
gl_Section.Lock();
|
|||
|
|
nDrawL =gl_nDrawLen;
|
|||
|
|
nDrawI =gl_nDrawIdx;
|
|||
|
|
gl_nDocDrawLen = gl_nDrawLen;
|
|||
|
|
gl_nDocDrawIdx =gl_nDrawIdx;
|
|||
|
|
gl_Section.Unlock();
|
|||
|
|
::SendMessage(pDoc->m_hWndWave,WM_SHOWWAVE, nDrawL, nDrawI);
|
|||
|
|
m_bProgress=TRUE; // ʹOnDraw<61><77><EFBFBD><EFBFBD><EFBFBD>ܸ<EFBFBD><DCB8>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ulTime = GetTickCount();
|
|||
|
|
//Sleep(1);
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case SAVE_MODE: // <20><><EFBFBD>ݴ<EFBFBD><DDB4>̴<EFBFBD><CCB4><EFBFBD>
|
|||
|
|
WroteMB=(WroteMB+32)%1024;
|
|||
|
|
pFrm->m_Progress()->SetPos((int)WroteMB);
|
|||
|
|
str.Format(_T("%d"), (FileLenghtWords/512));
|
|||
|
|
i=str.GetLength()-3;
|
|||
|
|
while(i>0)
|
|||
|
|
{
|
|||
|
|
str.Insert(i, ',');
|
|||
|
|
i-=3;
|
|||
|
|
}
|
|||
|
|
str+=" Kb";
|
|||
|
|
pFrm->m_FileLenght()->SetWindowText(str);
|
|||
|
|
ShowCount++;
|
|||
|
|
break;
|
|||
|
|
}//end switch
|
|||
|
|
|
|||
|
|
}//end while
|
|||
|
|
ExitProcDataThread:
|
|||
|
|
gl_bTerminateDrawThr = TRUE; // <20>߳<EFBFBD><DFB3><EFBFBD>ֹ
|
|||
|
|
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
//##########################################################################################
|
|||
|
|
|
|||
|
|
void CADDoc::Public_ReleaseDevice(void) // <20><>MDI<44><49><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>
|
|||
|
|
{
|
|||
|
|
StopDeviceAD();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CADDoc::StopDeviceAD()
|
|||
|
|
{
|
|||
|
|
CSysApp *pApp=(CSysApp *)AfxGetApp();
|
|||
|
|
// gl_bDeviceADRun = FALSE; // ֹͣ<CDA3><D6B9><EFBFBD>߳̽<DFB3><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>
|
|||
|
|
|
|||
|
|
CADFrame* pShow=((CSysApp*)AfxGetApp())->m_ADFrame ; // ȡ<><C8A1><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// bCreateDevice = FALSE;
|
|||
|
|
// SetEvent(hExitEvent);
|
|||
|
|
// WaitForSingleObject(hExitEvent, 100); // <20>ȴ<EFBFBD><C8B4>ɼ<EFBFBD><C9BC>߳<EFBFBD><DFB3>˳<EFBFBD>
|
|||
|
|
// <20><>ֹ<EFBFBD>ɼ<EFBFBD><C9BC>߳<EFBFBD>
|
|||
|
|
CProgressCtrl* pProgress=(CProgressCtrl*)(pShow->m_wndShowStatus.GetDlgItem(IDC_PROGRESS));
|
|||
|
|
pProgress->SetPos(0); // <20>ͷ<EFBFBD><CDB7>豸ʱ<E8B1B8><CAB1><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֵ
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>ͷź<CDB7><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(pParaCfgView != NULL)
|
|||
|
|
{
|
|||
|
|
pParaCfgView->EnableWindows(TRUE);
|
|||
|
|
}
|
|||
|
|
bCreateDevice = FALSE; // <20>ͷ<EFBFBD><CDB7>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸δ<E8B1B8><CEB4><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
// ::SendMessage(m_hWndDigit, WM_SHOWDIGIT, gl_nDocDrawLen, NULL);
|
|||
|
|
// ::SendMessage(m_hWndWave,WM_SHOWWAVE, gl_nDocDrawLen, NULL);
|
|||
|
|
if(!MyStopDeviceAD(pApp->m_hDevice)) // <20>ر<EFBFBD>AD<41>豸
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T("<EFBFBD>ر<EFBFBD>AD<EFBFBD>豸ʧ<EFBFBD><EFBFBD>!"));
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if(nProcessMode == SAVE_MODE) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>ʽΪ<CABD><CEAA><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
OnCloseFile();//<2F>ͷ<EFBFBD><CDB7>ļ<EFBFBD>
|
|||
|
|
nProcessMode = DATA_MODE; // <20>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ַ<EFBFBD>ʽ
|
|||
|
|
if(pADStatusView != NULL)
|
|||
|
|
{
|
|||
|
|
CButton* pDataSave=(CButton*)(pADStatusView->GetDlgItem(IDM_DataSave));
|
|||
|
|
pDataSave->EnableWindow(FALSE); // ʹ<><CAB9><EFBFBD>̷<EFBFBD>ʽ<EFBFBD><CABD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ч
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
ACTS1000_ReleaseSystemEvent(hEvent); // <20>ͷ<EFBFBD><CDB7><EFBFBD>Ϣ
|
|||
|
|
ACTS1000_ReleaseSystemEvent(hExitEvent); // <20>ͷ<EFBFBD><CDB7><EFBFBD>Ϣ
|
|||
|
|
|
|||
|
|
gl_Section.Lock();
|
|||
|
|
gl_nDocDrawLen = gl_nDrawLen;
|
|||
|
|
gl_nDocDrawIdx =gl_nDrawIdx;
|
|||
|
|
gl_Section.Unlock();
|
|||
|
|
::SendMessage(m_hWndDigit, WM_SHOWDIGIT, gl_nDrawLen, gl_nDrawIdx);
|
|||
|
|
::SendMessage(m_hWndWave,WM_SHOWWAVE, gl_nDrawLen, gl_nDrawIdx);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CADDoc::OnDataFileNew()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
CString strNewFileName;
|
|||
|
|
CString TempFileName;
|
|||
|
|
CSysApp* pApp=(CSysApp*)AfxGetApp();
|
|||
|
|
if (!(pApp->DoPromptFileName(strNewFileName, IDS_NEW_FILE,
|
|||
|
|
OFN_HIDEREADONLY | OFN_CREATEPROMPT, TRUE, NULL)))
|
|||
|
|
return;
|
|||
|
|
if(!m_bFirstCreateDeviceFile)
|
|||
|
|
{ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if ( ! CloseHandle( g_ArrFileOut ) )
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(L"<EFBFBD>ͷ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>...",MB_ICONSTOP,0);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
int FileNameLength=strNewFileName.GetLength();
|
|||
|
|
//TempFileName=strNewFileName.Left(FileNameLength-4);
|
|||
|
|
|
|||
|
|
|
|||
|
|
g_ArrFileOut =CreateFile(strNewFileName, GENERIC_READ|GENERIC_WRITE, 0, NULL,
|
|||
|
|
CREATE_ALWAYS,
|
|||
|
|
FILE_ATTRIBUTE_NORMAL, NULL);
|
|||
|
|
if (g_ArrFileOut == INVALID_HANDLE_VALUE )
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>..."),MB_ICONSTOP,0);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2BFAAB5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
g_strFileFullName = strNewFileName;
|
|||
|
|
|
|||
|
|
gl_nSaveFileCount = gl_nChannelCount;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
CADFrame* pShow=((CSysApp*)AfxGetApp())->m_ADFrame ; // ȡ<><C8A1><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>
|
|||
|
|
pShow->ShowHideDlgSave (); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
pShow->ShowHideStatus(FALSE);//<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
|||
|
|
if(pADStatusView != NULL)
|
|||
|
|
{
|
|||
|
|
CButton* pDataSave=(CButton*)(pADStatusView->GetDlgItem(IDM_DataSave));
|
|||
|
|
pDataSave->EnableWindow(TRUE); // ʹ<><CAB9><EFBFBD>̷<EFBFBD>ʽ<EFBFBD><CABD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ч
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
_ULARGE_INTEGER dlFreeSpace, dlTotalSpace, dlUserSpace;
|
|||
|
|
|
|||
|
|
GetDiskFreeSpaceEx(strNewFileName.Left(3), &dlUserSpace, &dlUserSpace, &dlFreeSpace);
|
|||
|
|
(void)dlTotalSpace;
|
|||
|
|
(void)dlUserSpace;
|
|||
|
|
|
|||
|
|
ULONGLONG DiskFreeBytes = dlFreeSpace.QuadPart;
|
|||
|
|
|
|||
|
|
// ȡ<><C8A1><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>̿<EFBFBD><CCBF>ÿռ<C3BF> */
|
|||
|
|
m_RemainMB=(ULONG)(DiskFreeBytes/(1024*1024)); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>M<EFBFBD><4D>
|
|||
|
|
CString str;
|
|||
|
|
|
|||
|
|
if(m_RemainMB<2)
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T("Ӳ<EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD>ռ䲻<EFBFBD><EFBFBD>2M<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>..."),MB_ICONSTOP,0);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
str.Format(_T("%d Mb"),m_RemainMB);
|
|||
|
|
pShow->m_DiskFree()->SetWindowText (str);// <20>õ<EFBFBD>ǰӲ<C7B0>̿<EFBFBD><CCBF>ÿռ<C3BF>MB
|
|||
|
|
|
|||
|
|
pShow->m_Progress()->SetRange32(0,1024);// <20><><EFBFBD>ý<EFBFBD><C3BD>̷<EFBFBD>Χ
|
|||
|
|
pShow->m_Progress()->SetPos(0);
|
|||
|
|
|
|||
|
|
/////////////
|
|||
|
|
pShow->m_FileName()->SetWindowText(strNewFileName);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
|
m_bFirstCreateDeviceFile=FALSE; // <20><><EFBFBD>ɹ<EFBFBD><C9B9>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD>־
|
|||
|
|
|
|||
|
|
m_bCloseFile=FALSE; // <20><><EFBFBD>ļ<EFBFBD>û<EFBFBD>йر<D0B9>,<2C><><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>رյ<D8B1>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>˵<EFBFBD>
|
|||
|
|
if(pADStatusView != NULL)
|
|||
|
|
pADStatusView->SetDlgCheck();
|
|||
|
|
nProcessMode = SAVE_MODE; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6>Ҫ<EFBFBD><D2AA><EFBFBD>д<EFBFBD><D0B4>̴<EFBFBD><CCB4><EFBFBD>
|
|||
|
|
|
|||
|
|
pADStatusView->SetDlgCheck();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CADDoc::OnCloseFile()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
DWORD dTmp;
|
|||
|
|
|
|||
|
|
header.HeadSizeBytes = sizeof(FILE_HEADER);
|
|||
|
|
header.ADStatus = gl_ADStatus; // gl_ADStatus.bTrigFlag;
|
|||
|
|
// g_ArrFileOut.SeekToBegin();
|
|||
|
|
// g_ArrFileOut.Write(&header, sizeof(FILE_HEADER));
|
|||
|
|
// g_ArrFileOut.Close();
|
|||
|
|
SetFilePointer(g_ArrFileOut, 0, 0, FILE_BEGIN);
|
|||
|
|
//ACTS1000_WriteFile(hFileObject[nChannel], &header, sizeof(FILE_HEADER));
|
|||
|
|
if (!WriteFile(g_ArrFileOut, &header, sizeof(FILE_HEADER), &dTmp, NULL))
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(L"error");
|
|||
|
|
}
|
|||
|
|
CloseHandle( g_ArrFileOut);
|
|||
|
|
|
|||
|
|
CString strTitle;
|
|||
|
|
strTitle = GetTitle(); // Ϊ<><CEAA>ֹSetPathName<6D>ı<EFBFBD><C4B1>ĵ<EFBFBD><C4B5><EFBFBD>Title<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|||
|
|
// <20><><EFBFBD>ӵ<EFBFBD> <20><><EFBFBD><EFBFBD><F2BFAAB5>ļ<EFBFBD><C4BC>б<EFBFBD><D0B1><EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
m_bCloseFile=TRUE; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ر<EFBFBD>
|
|||
|
|
nProcessMode = DATA_MODE; // <20><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD>д<EFBFBD><D0B4>̴<EFBFBD><CCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>ַ<EFBFBD>ʽ
|
|||
|
|
m_bFirstCreateDeviceFile=TRUE; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>رպ<D8B1><D5BA><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
///////
|
|||
|
|
CADFrame* pADFrm = ((CSysApp*)AfxGetApp())->m_ADFrame ; // ȡ<><C8A1><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>
|
|||
|
|
CButton* pDataSave=(CButton*)(pADStatusView->GetDlgItem(IDM_DataSave));
|
|||
|
|
pDataSave->EnableWindow(TRUE); // ʹ<><CAB9><EFBFBD>̷<EFBFBD>ʽ<EFBFBD><CABD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ч
|
|||
|
|
|
|||
|
|
CString str;
|
|||
|
|
str.Format(_T("%d"), 0);
|
|||
|
|
pADFrm->m_DiskFree()->SetWindowText(str);
|
|||
|
|
|
|||
|
|
if (gl_bAutoCollect)
|
|||
|
|
{
|
|||
|
|
// SetPathName(g_strFileFullName[1]);
|
|||
|
|
SetPathName(g_strFileFullName);
|
|||
|
|
SetTitle(strTitle); // <20>ָ<EFBFBD><D6B8>ĵ<EFBFBD><C4B5><EFBFBD>Title
|
|||
|
|
pADFrm->ShowHideDlgSave (FALSE); // <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
pADFrm->ShowHideStatus();//<2F><>ʾ״̬<D7B4><CCAC>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
pADFrm->m_Progress()->SetRange32(0,1024); // <20><><EFBFBD>ý<EFBFBD><C3BD>̷<EFBFBD>Χ
|
|||
|
|
pADFrm->m_Progress()->SetPos(0);
|
|||
|
|
// һ<><EFBFBD><D7BD><EFBFBD>
|
|||
|
|
pADStatusView->SetDlgCheck();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CADDoc::OnTileWave()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
gl_bTileWave = TRUE;
|
|||
|
|
CButton* pButtonTile = (CButton*)pADStatusView->GetDlgItem(IDM_TileWave);
|
|||
|
|
pButtonTile->SetCheck(1);
|
|||
|
|
CButton* pButtonPose = (CButton*)pADStatusView->GetDlgItem(IDM_SuperPoseWave);
|
|||
|
|
pButtonPose->SetCheck(0);
|
|||
|
|
CADWaveView* pWaveView=(CADWaveView*)(CWnd::FromHandle(m_hWndWave));
|
|||
|
|
pWaveView->m_ADScopeCtrl.InvalidateCtrl();
|
|||
|
|
pWaveView->OnDrawPolyLine(gl_nDocDrawLen,gl_nDocDrawIdx);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CADDoc::OnSuperPoseWave()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
gl_bTileWave = FALSE;
|
|||
|
|
CButton* pButtonTile = (CButton*)pADStatusView->GetDlgItem(IDM_TileWave);
|
|||
|
|
pButtonTile->SetCheck(0);
|
|||
|
|
CButton* pButtonPose = (CButton*)pADStatusView->GetDlgItem(IDM_SuperPoseWave);
|
|||
|
|
pButtonPose->SetCheck(1);
|
|||
|
|
CADWaveView* pWaveView = (CADWaveView*)(CWnd::FromHandle(m_hWndWave));
|
|||
|
|
pWaveView->m_ADScopeCtrl.InvalidateCtrl();
|
|||
|
|
pWaveView->OnDrawPolyLine(gl_nDocDrawLen,gl_nDocDrawIdx);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CADDoc::OnUpdateSuperPoseWave(CCmdUI* pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command update UI handler code here
|
|||
|
|
pCmdUI->SetCheck(gl_bTileWave==TRUE ? 0:1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CADDoc::OnUpdateTileWave(CCmdUI* pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command update UI handler code here
|
|||
|
|
pCmdUI->SetCheck(gl_bTileWave==TRUE ? 1:0);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|