?? datafetch.cpp
字號:
// DataFetch.cpp: implementation of the CDataFetch class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "RTMS.h"
#include "rtmsdlg.h"
#include "DataFetch.h"
#include "DataProcJob.h"
#include "CIniFile.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
UINT CDataFetchJob::DoWork()
{
int m_hComNum;
int m_hBaud;
int m_nDataBits;
int m_nParity;
int m_nStopbits;
DWORD dwResult;
DWORD dwReadRet;
CDataProcJob mDataProcJob;
mDataProcJob.Begin ();
Sleep(2000);
m_hBaud=0;
GetComPara(m_hComNum,m_hBaud,m_nDataBits,m_nParity,m_nStopbits);
while (m_hBaud==0)
{
GetComPara(m_hComNum,m_hBaud,m_nDataBits,m_nParity,m_nStopbits);
}
m_hCom.InitCOM (m_hComNum,m_hBaud,m_nDataBits,m_nParity,m_nStopbits);
while(!m_bAbort)
{
dwReadRet=0;
dwReadRet=m_hCom.GetCOMData (pchBuffer);
if(dwReadRet>0)
{
mDataProcJob.ProcData ((unsigned char*)pchBuffer,dwReadRet);
//m_mainwnd->ProcData ((unsigned char*)pchBuffer,dwReadRet);
}
dwResult=WaitForSingleObject(hExitEvent,100);
if( WAIT_OBJECT_0 == dwResult ) m_bAbort=TRUE;
}
m_hCom.CloseCOM ();
mDataProcJob.Abort ();
while (!mDataProcJob.IsNormalQuit ()) Sleep(100);
return 1;
}
BOOL CDataFetchJob::GetComPara(int &m_hCom, int &m_hBaud, int &m_nDataBits, int &m_nParity, int &m_nStopBits)
{
CIniFile mfile;
mfile.Create ("RTMS.ini");
mfile.GetVarInt("OPTION","COM",m_hCom);
mfile.GetVarInt("OPTION","Baud",m_hBaud);
mfile.GetVarInt("OPTION","Bit",m_nDataBits);
mfile.GetVarInt("OPTION","Parity",m_nParity);
mfile.GetVarInt("OPTION","StopBit",m_nStopBits);
mfile.CloseIniFile();
return true;
}
//Data Poll
BOOL CDataFetchJob::SendDataRequest(BYTE SensorID)
{
mDataFrame.mHead .FrameStatus =0xFF;
mDataFrame.mHead .TransCode =0x8F;
mDataFrame.mHead .DataLen =1;
mDataFrame.pBuf [0]=SensorID;
BYTE mChkSum;
mChkSum=SensorID;
mDataFrame.pBuf [1]=mChkSum;
if(m_hCom.SendCOMCode ((unsigned char*)&mDataFrame,5))
return true;
else
return false;
}
//Clears the RTMS buffer
BOOL CDataFetchJob::SendBufferFlush(BYTE SensorID)
{
mDataFrame.mHead .FrameStatus =0xFF;
mDataFrame.mHead .TransCode =0x1F;
mDataFrame.mHead .DataLen =1;
mDataFrame.pBuf [0]=SensorID;
BYTE mChkSum;
mChkSum=SensorID;
mDataFrame.pBuf [1]=mChkSum;
if(m_hCom.SendCOMCode ((unsigned char*)&mDataFrame,5))
return true;
else
return false;
}
//Self-Test request in Normal mode
BOOL CDataFetchJob::SendBitRequest()
{
mDataFrame.mHead .FrameStatus =0xFF;
mDataFrame.mHead .TransCode =0x88;
mDataFrame.mHead .DataLen =0;
if(m_hCom.SendCOMCode ((unsigned char*)&mDataFrame,3))
return true;
else
return false;
}
////self-Test request in Polled Mode.
BOOL CDataFetchJob::SendPolledBitRequest(BYTE SensorID)
{
mDataFrame.mHead .FrameStatus =0xFF;
mDataFrame.mHead .TransCode =0x90;
mDataFrame.mHead .DataLen =1;
mDataFrame.pBuf [0]=SensorID;
BYTE mChkSum;
mChkSum=SensorID;
mDataFrame.pBuf [1]=mChkSum;
if(m_hCom.SendCOMCode ((unsigned char*)&mDataFrame,5))
return true;
else
return false;
}
//Request current setup of power management
BOOL CDataFetchJob::SendPMVRequest(BYTE SensorID)
{
mDataFrame.mHead .FrameStatus =0xFF;
mDataFrame.mHead .TransCode =0x96;
mDataFrame.mHead .DataLen =1;
mDataFrame.pBuf [0]=SensorID;
BYTE mChkSum;
mChkSum=SensorID;
mDataFrame.pBuf [1]=mChkSum;
if(m_hCom.SendCOMCode ((unsigned char*)&mDataFrame,5))
return true;
else
return false;
}
//Generated during setup to send the selected speed to the sensor to set its serial port
//BaudID 1=2400,2=4800,3=9600,4=14400,
//5=19200,6=38400,7=57600,8=115200
BOOL CDataFetchJob::SendSetBaudRate(BYTE SensorID, BYTE BaudID)
{
mDataFrame.mHead .FrameStatus =0xFF;
mDataFrame.mHead .TransCode =0xAC;
mDataFrame.mHead .DataLen =2;
mDataFrame.pBuf [0]=SensorID;
mDataFrame.pBuf [1]=BaudID;
BYTE mChkSum;
mChkSum=SensorID+BaudID;
mDataFrame.pBuf [2]=mChkSum;
if(m_hCom.SendCOMCode ((unsigned char*)&mDataFrame,6))
return true;
else
return false;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -