資源簡介
VC實現串口通訊,數據接收、數據發送,數據解析,以回調函數的方式給其它調用 的地方或者界面直接使用。
代碼片段和文件信息
//###############################################################################################################
//?串口操作類CComPort_Meter類CComPort_Meter的實現文件
//###############################################################################################################
#include?“stdafx.h“
#include?“CComPort_Meter.h“
#define?IN_BUF_SIZE?1024*100 //串口輸入緩沖區的大小
#define?OUT_BUF_SIZE?1024*10 //串口輸出緩沖區的大小
unsigned?long?power(int?base?int?times)
{
int?i;
unsigned?long?rslt?=?1;
for(i=0;?i rslt?*=?base;
return?rslt;
}
unsigned?long??BCDtoDec(byte?*bcd)
{
if?(bcd[0]==0xff)
{
bcd[0]=0;
}
if?(bcd[1]==0xff)
{
bcd[1]=0;
}
if?(bcd[2]==0xff)
{
bcd[2]=0;
}
int?bcd_int;
bcd_int=(int)((bcd[0]>>4)&0x0f)*100000;
bcd_int+=(int)(bcd[0]&0x0f)*10000;
bcd_int+=(int)((bcd[1]>>4)&0x0f)*1000;
bcd_int+=(int)(bcd[1]&0x0f)*100;
bcd_int+=(int)((bcd[2]>>4)&0x0f)*10;
bcd_int+=(int)bcd[2]&0x0f;
return?bcd_int;
}
byte?CheckSum(byte?crcData[]?int?offset?int?count)
{
unsigned?int?sum?=?0;
for?(int?i?=?offset;?i? {
sum?+=?crcData[i];
}
return?(byte)?(sum?&?0xFF);
}
CString?Char2CString(char?*pszCmd)
{
int?charlen;
int?len;
CString?str;
charlen=strlen(pszCmd);
len=MultiByteToWideChar(CP_ACP0pszCmdcharlenNULL0);
TCHAR?*buf=new?TCHAR[len+1];
MultiByteToWideChar(CP_ACP0pszCmdcharlen(LPWSTR)buflen);
buf[len]=‘\0‘;
str=_T(““);
str.Append(buf);
return?str;
}
CString?FloatStr2CString(CString?k)
{
BOOL?bAgain=TRUE;
while((k.GetLength()>0)&&(k.Find(_T(“.“))>=0)&&(bAgain==TRUE))
{
if(((k.GetAt(k.GetLength()-1)==‘0‘))||(k.GetAt(k.GetLength()-1)==_T(‘.‘)))
{
k=k.Left(k.GetLength()-1);
}
else?
bAgain=FALSE;
}
bAgain=TRUE;
while((k.GetLength()>0)&&(bAgain==TRUE))
{
if(k.GetAt(0)==‘0‘)
{
k=k.Right(k.GetLength()-1);
}
else?
bAgain=FALSE;
}
return?k;
}
BOOL?CComPort_Meter::WeightDataHandle(LPCSTR?pszDataProtocolInfo?&info)
{
if?(pStrBufTemp.length()>100)
{
pStrBufTemp=““;
}
if?(1==m_CommunicaMode)
{
return?PraseDataMode_Keli_1(pszData?info);
}
if?(2==m_CommunicaMode)
{
return?PraseDataMode_Keli_2(pszData?info);
}
if?(3==m_CommunicaMode)
{
return?PraseDataMode_Keli_3(pszData?info);
}
if?(4==m_CommunicaMode)
{
return?PraseDataMode_Keli_4(pszData?info);
}
if?(5==m_CommunicaMode)
{
return?PraseDataMode_Keli_5(pszData?info);
}
if?(6==m_CommunicaMode)
{
return?PraseDataMode_Keli_6(pszData?info);
}
if?(7==m_CommunicaMode)
{
return?PraseDataMode_Keli_7(pszData?info);
}
if?(8==m_CommunicaMode)
{
return?PraseDataMode_Keli_8(pszData?info);
}
if?(9==m_CommunicaMode)
{
return?PraseDataMode_Keli_9(pszData?info);
}
}
BOOL?CComPort_Meter::PraseDataMode_Keli_1(LPCSTR?pszDataProtocolInfo?&info)
{
CString?m_str_temp;
pStrBufTemp+=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????1959936??2017-10-14?11:36??ProtocolProc\Debug\ProtocolProc.dll
?????文件???????5480??2017-10-14?11:36??ProtocolProc\Debug\ProtocolProc.exp
?????文件????6098912??2017-10-14?11:36??ProtocolProc\Debug\ProtocolProc.ilk
?????文件???????9596??2017-10-14?11:36??ProtocolProc\Debug\ProtocolProc.lib
?????文件???11914240??2017-10-14?11:36??ProtocolProc\Debug\ProtocolProc.pdb
?????文件??????31528??2017-09-14?14:47??ProtocolProc\ProtocolProc\CComPort_Meter.cpp
?????文件???????2866??2017-10-14?11:36??ProtocolProc\ProtocolProc\CComPort_Meter.h
?????文件??????27660??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\BuildLog.htm
?????文件?????389447??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\CComPort_Meter.obj
?????文件?????413444??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\MeterProtocol.obj
?????文件?????????65??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\mt.dep
?????文件????????406??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\ProtocolProc.dll.em
?????文件????????472??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\ProtocolProc.dll.em
?????文件????????381??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\ProtocolProc.dll.intermediate.manifest
?????文件??????16669??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\ProtocolProc.obj
?????文件???25755648??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\ProtocolProc.pch
?????文件??????10652??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\ProtocolProc.res
?????文件?????481044??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\stdafx.obj
?????文件????1215488??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\vc90.idb
?????文件????2347008??2017-10-14?11:36??ProtocolProc\ProtocolProc\Debug\vc90.pdb
?????文件??????17274??2017-10-14?11:33??ProtocolProc\ProtocolProc\MeterProtocol.cpp
?????文件???????4708??2017-10-14?11:34??ProtocolProc\ProtocolProc\MeterProtocol.h
?????文件???????1173??2017-10-14?11:27??ProtocolProc\ProtocolProc\ProtocolProc.cpp
?????文件????????112??2017-10-14?11:27??ProtocolProc\ProtocolProc\ProtocolProc.def
?????文件????????431??2017-10-14?11:27??ProtocolProc\ProtocolProc\ProtocolProc.h
?????文件???????3060??2017-10-14?11:27??ProtocolProc\ProtocolProc\ProtocolProc.rc
?????文件???????5615??2017-10-14?11:29??ProtocolProc\ProtocolProc\ProtocolProc.vcproj
?????文件???????1401??2018-04-26?09:39??ProtocolProc\ProtocolProc\ProtocolProc.vcproj.IKKBJFZLO3UIM2N.Administrator.user
?????文件???????2116??2017-10-14?11:27??ProtocolProc\ProtocolProc\ReadMe.txt
?????文件????????368??2017-10-14?11:27??ProtocolProc\ProtocolProc\res\ProtocolProc.rc2
............此處省略15個文件信息
評論
共有 條評論