CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

(求救)vc6.0与单片机串口通信数据处理

楼主happyna()2006-05-03 10:50:07 在 VC/MFC / 基础类 提问

在VC++6.0环境下实现小区车辆出入信息采集系统上位机的开发.此系统能接受到出入小区车辆的信息,主要包括出入时间,出入状态,车型,车牌号,车主代码.如果不是小区车辆还能实现报警功能.  
  我是用CSerialPort类来进行串行通信的.  
  加入函数OnComm()的实现,并在其中完成对接受到字符的处理,"时间"是在   LONG   CCarMSDlg::OnComm(WPARAM   ch,   LPARAM   port){}一触发后显示当前系统的时间.其余:状态,车型,车牌号,车主代码是接受硬件的数据,然后对应显示在相应的框内:以下是小妹自己写的,请高手指教  
    状态一个字节(如1),车型2位数(如A1),车牌号7位数(如粤A25263)车主代码12(198402260012)  
  LONG   CCarMSDlg::OnComm(WPARAM   ch,   LPARAM   port)  
  {  
          VARIANT   m_input1;  
          ColeSafeArray   m_input2;  
          Long   length,i;  
          BYTE   data[1024];  
          Cstring   str;  
  int   b;  
          if(m_Comm.GetCommEvent()=   =2)//接收缓冲区内有字符  
    {  
                m_input1=m_Comm.Getinput();//读取缓冲区内的数据  
                m_input2=m_input1;//将VARIANT型变量转换为ColeSafeArray型变量  
                length=m_input2.GetOneDimSize();//确定数据长度  
        for(i=0;i<length;++)  
                m_input2.GetElement(&i,data+i);//将数据转换为BYTE型数组  
                for(i=0;i<length;i++)//将数组转换为Cstring型变量  
        {  
                  char   a=*   (char   *)(data+i);  
                  str.Format("%c",a);  
                  count=m_comm.GetInBufferCount(   );  
          m_comm.SetInputLen(count);             //利用Input接收字符数为count  
          temp=m_comm.GetInput(   );               //接收字符  
  b=count;  
  for(b=1;b<count;b++)  
  {  
        if(b=1)  
        {  
        m_state.Empty(   );  
                        m_state+=temp.bsteVal;//赋值给到"状态"编辑框  
        }  
        if(b=2)  
                        {  
        m_cartype.Empty(   );  
        m_cartype+=temp.bsteVal;//赋值给到"车型"编辑框  
        }  
        if(b=4)      
        {  
                        m_carnum.Empty(   );  
        m_carnum+=temp.bsteVal;//赋值给到"车牌号"编辑框  
        }  
        if(b=12)  
        {  
                        m_usernum.Empty(   );  
        m_usernum+=temp.bsteVal;//赋值给到"车主代码"编辑框  
        }  
  }  
    }  
        UpdataData(FALSE);//更新编辑框内容  
        return   0;  
  }  
  获取系统时间的不知道怎么写?希望指教,多谢多谢!!!!! 问题点数:20、回复次数:13Top

1 楼happyna()回复于 2006-05-03 10:53:17 得分 0

问题二:然后接受数据后,对比ACESS数据表"车辆信息"预存好的信息,只要对比车主代码,如果数据表内没有,则警告:不是小区车辆.如果是表内数据,则把时间,状态,车型,车牌号,车主代码一起存入另一个ACESS数据表"车辆出入信息".Top

2 楼lfchen(一条晚起的虫--床上用品[家纺]专卖)回复于 2006-05-03 11:19:19 得分 0

系统时间:GetLocalTime()或者CTime::GetCurrentTime(),具体看MSDN。  
  串口部分没什么问题。  
  问题二:数据库操作,搜索一下ado或者odbc,论坛中已经有很多了。Top

3 楼happyna()回复于 2006-05-03 17:37:46 得分 0

多谢这位大哥,但由于我学的太差,无法根据类似的去修改,希望好心人能帮小妹一把.  
  把具体的代码写下.呵呵!!!!!Top

4 楼happyna()回复于 2006-05-03 17:48:25 得分 0

获取系统时间也是在OnComm()内触发,然后赋值给m_time显示.那么这段代码加到那里,而且上面的那个  
  LONG   CCarMSDlg::OnComm(WPARAM   ch,   LPARAM   port)  
  {  
  }  
  内编译时出现好多问题,不知从何改  
  D:\CarMS\CarMSDlg.cpp(190)   :   error   C2065:   'ColeSafeArray'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(190)   :   error   C2146:   syntax   error   :   missing   ';'   before   identifier   'm_input2'  
  D:\CarMS\CarMSDlg.cpp(190)   :   error   C2065:   'm_input2'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(191)   :   error   C2065:   'Long'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(191)   :   error   C2146:   syntax   error   :   missing   ';'   before   identifier   'length'  
  D:\CarMS\CarMSDlg.cpp(191)   :   error   C2065:   'length'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(191)   :   error   C2065:   'i'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(193)   :   error   C2065:   'Cstring'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(193)   :   error   C2146:   syntax   error   :   missing   ';'   before   identifier   'str'  
  D:\CarMS\CarMSDlg.cpp(193)   :   error   C2065:   'str'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(195)   :   error   C2065:   'm_Comm'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(195)   :   error   C2228:   left   of   '.GetCommEvent'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(195)   :   error   C2059:   syntax   error   :   '='  
  D:\CarMS\CarMSDlg.cpp(196)   :   error   C2143:   syntax   error   :   missing   ';'   before   '{'  
  D:\CarMS\CarMSDlg.cpp(197)   :   error   C2228:   left   of   '.Getinput'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(198)   :   error   C2679:   binary   '='   :   no   operator   defined   which   takes   a   right-hand   operand   of   type   'struct   tagVARIANT'   (or   there   is   no   acceptable   conversion)  
  D:\CarMS\CarMSDlg.cpp(199)   :   error   C2228:   left   of   '.GetOneDimSize'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(200)   :   error   C2059:   syntax   error   :   ')'  
  D:\CarMS\CarMSDlg.cpp(205)   :   error   C2228:   left   of   '.Format'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(206)   :   error   C2065:   'count'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(206)   :   error   C2065:   'm_comm'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(206)   :   error   C2228:   left   of   '.GetInBufferCount'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(207)   :   error   C2228:   left   of   '.SetInputLen'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(208)   :   error   C2065:   'temp'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(208)   :   error   C2228:   left   of   '.GetInput'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(215)   :   error   C2228:   left   of   '.bsteVal'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(220)   :   error   C2228:   left   of   '.bsteVal'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(225)   :   error   C2228:   left   of   '.bsteVal'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(230)   :   error   C2228:   left   of   '.bsteVal'   must   have   class/struct/union   type  
  D:\CarMS\CarMSDlg.cpp(234)   :   error   C2065:   'UpdataData'   :   undeclared   identifier  
  D:\CarMS\CarMSDlg.cpp(239)   :   error   C2601:   'OnButtonOpen'   :   local   function   definitions   are   illegal  
  D:\CarMS\CarMSDlg.cpp(257)   :   error   C2601:   'OnButtonClose'   :   local   function   definitions   are   illegal  
  D:\CarMS\CarMSDlg.cpp(264)   :   fatal   error   C1004:   unexpected   end   of   file   found  
  Error   executing   cl.exe.  
  Top

5 楼happyna()回复于 2006-05-03 18:06:48 得分 0

这是我毕业设计的课题,小妹是学通信工程,但是不幸的是选毕业设计课题时抽签抽到用VC编写小区车辆出入信息采集系统上位机的开发.  
  我从来没学过VC.我搞了两个月,还是没什么成就!就搞了一点界面的东西出来,底层实现的数据始终不知怎么写  
  哎!希望那位大哥可以帮小妹这个忙,让我顺利通过毕业.我的QQ:103123898希望能祥谈.Top

6 楼roscoe(草上飞)回复于 2006-05-03 18:25:32 得分 0

没见过这么粗心的MM,肯本上都是写错了,少写之类Top

7 楼happyna()回复于 2006-05-03 18:54:31 得分 0

接受批评!我看书就走马观花.那请楼上大哥指教哟Top

8 楼lfchen(一条晚起的虫--床上用品[家纺]专卖)回复于 2006-05-03 19:16:50 得分 0

晕啊,粗粗一看  
  ColeSafeArray   --->   COleSafeArray,   Long   --->   long,   Cstring   --->   CString,  
  UpdataData   --->   UpdateData  
  m_Comm   或者   m_comm的定义在哪里?Top

9 楼happyna()回复于 2006-05-05 14:40:10 得分 0

上面的大哥们,你们行行好?告诉我怎么做啊?Top

10 楼lfchen(一条晚起的虫--床上用品[家纺]专卖)回复于 2006-05-05 15:13:19 得分 20

奇怪,不能给楼主发短消息,被拉入黑名单了?Top

11 楼happyna()回复于 2006-05-05 16:02:17 得分 0

不会吧!Top

12 楼happyna()回复于 2006-05-05 16:02:43 得分 0

我一直在啊Top

13 楼happyna()回复于 2006-05-05 16:29:37 得分 0

没有 啊!我没拉谁进黑名单啊?我发了短信给你,怎么没收到呢?Top

相关问题

关键词

得分解答快速导航

  • 帖主:happyna
  • lfchen

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo