MFC串口接收数据,如何接受正确的一串数据

MFC串口接收数据,如何接受正确的一串数据,第1张

代码如下:

var msg = EncodingDefaultGetString(thisbufToArray());

2完整性判断while (msgLength > BeginOfLineLength + EndOfLineLength)//至少要包含头(2字节)+长度(1字节)+校验(1字节)。

{

if (msgIndexOf(BeginOfLine) == 0)

{

if (msgIndexOf(EndOfLine) > 0)

{

thisRaw = new byte[msgIndexOf(EndOfLine) - BeginOfLineLength + 1];

thisbufCopyTo(BeginOfLineLength, thisRaw, 0, msgIndexOf(EndOfLine) - BeginOfLineLength);

thisbufRemoveRange(0, msgIndexOf(EndOfLine) + EndOfLineLength);                         if (thisbufCount > 0)

{

msg = EncodingDefaultGetString(thisbufToArray());

}

else msg = "";

thisOnGetNew(thisRaw);

}

else

{

break;

}

}

else

{

//这里是很重要的,如果数据开始不是头,则删除数据。

int index = msgIndexOf(BeginOfLine);

if (index > 0)

{

thisbufRemoveRange(0, index);

msg = msgSubstring(index,msgLength- index);

}

else

{

if(thisbufCount>0)thisbufRemoveAt(0);

msg = "";

}

}

WINCE不允许同时打开多个串口进行读写, 那么你就只能搞一个虚拟串口来 *** 作两个设备了,详见:

>

直接利用你的 ado 对象调用 sql 的 insert 指令插入记录即可。我不知道你用的什么方式(或者说什么包装类)连接的 access ,所以也无法给出具体的代码。如果可以,你可以贴出部分你连接access时的代码我看下。

如果你是用原生 ado *** 作的话,代码应该类似下面,注意这段代码是写完一条记录就立即就关闭的,你可以等都写完了再关闭:

CoInitialize(NULL);

_ConnectionPtr ppConn(__uuidof(Connection));

_RecordsetPtr ppRst(__uuidof(Recordset));

ppConn->ConnectionString="Provider=MicrosoftJetOLEDB40;Data Source=D:\\testmdb;Persist Security Info=False";

ppConn->Open("","","",adConnectUnspecified);

CString szSQl; 

CString INS_name; 

CString INS_age; 

GetDlgItemText(IDC_EDIT1,INS_name);

GetDlgItemText(IDC_EDIT2,INS_age);

//下面这两行负责写入数据

szSQlFormat("insert into m_USER (pt_name,pt_age) values ('%s',%d)",INS_name,atol(INS_age));

ppRst=ppConn->Execute(_bstr_t(szSQl),NULL,adCmdText);

ppConn->Close();

ppRstRelease();

ppConnRelease();

CoUninitialize( );

是不是端口句柄初始化问题?

看看下面代码吧

DCB dcb;

m_hIDComDev=CreateFile( "COM2", GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVE RLAPPED, NULL ); // 打开串口,异步 *** 作

if( m_hIDComDev == NULL ) return( FALSE );

dcbDCBlength = sizeof( DCB );

GetCommState( m_hIDComDev, &dcb ); // 获得端口默认设置

dcbBaudRate=CBR_4800;

dcbByteSize=8;

dcbParity= NOPARITY;

。。。。。

以上就是关于MFC串口接收数据,如何接受正确的一串数据全部的内容,包括:MFC串口接收数据,如何接受正确的一串数据、WINCE应用程序MFC开发怎么同时读取两个串口的数据、怎么将MFC从串口获取的数据实时存储到ACCES数据库中呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9520873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存