EDN China > 设计实例 > 汽车电子 > 正文
?

基于C++ Builder的自动变速器电控单元实车试验数据采集系统

罗君贇 周凡华 邱绪云 吴小清?? 2008年09月01日 ?? 收藏0

  g_TIMEID=TIMEID;
  }
  void end_timer()?????????????????? //终止定时
  { timeKillEvent(g_TIMEID);
  timeEndPeriod(0);
  }
  void WINAPI callbackfunction(UINT uID,UINT MSG,DWORD DWUSER,DWORD DW1,DWORD DW2)
  {?????????????????????? //在此函数中加入定时内自己要做的内容,本系统即要加入
??????????????????????? //模拟量、数字量采集子函数的调用和存储数据等语句
  }

  首先调用void start_timer(double m_time_val)启动多媒体定时器,多媒体定时器将每隔一个时间间隔调用void WINAPI callbackfunction(UINT uID,UINT MSG,DWORD DWUSER,DWORD DW1,DWORD DW2)函数,通过改变time_interval的值可以改变时间间隔(time_interval的单位是毫秒),在定时结束时调用void end_timer()来终止定时。

  3.4存储数据

  本数据采集系统还将把采集到的数据存储起来,以便将来对这些数据进行分析。现在最常用的数据库就是微软的Access,而C++Builder对数据库也有较好的操作,所以我们采取将数据存入Access的方案来实现数据的存储。基本的操作步骤如下:

  ●使用ADO组件页中的ADOTable组件来连接存储数据的数据库。

  ●由于ADOTable组件只负责连接数据库,无法取得数据库文件内的字段数据,所以我们仍得使用Data Access组件页中的DataSource组件来实现,将它的DataSet属性指定为ADOTable1(即前一步骤加入的ADOTable组件名称)。

  ●往数据库存数据的过程即是新增记录的过程,所以只需添加几句简单的语句:

  ADOTable1->Insert();
  ADOTable1->FieldValues["voltage1"]=voltage1;
  …………
  ADOTable1->Post();

  首先调用Insert方法创建一个缓冲区(即成为编辑模式),接着进行数据字段值的编辑,当我们完成数据输入的操作后,必须调用Post方法,或者将当前的数据位置移到另一笔数据上,这样才会将新增的记录内容写入到数据库。

  4 结论

  试验结果表明本文基于Borland C++ Builder开发的汽车自动变速器电控单元(ECU)实车试验数据采集系统,能够满足车载分析试验台的要求,这为ECU的开发和优化控制策略打下基础。

  参考文献

  [1]杨宗志. C++Builder数据库程序设计[M]. 北京:清华大学出版社,2001
  [2]潘旭峰,等. 现代汽车电子技术[M]. 北京:北京理工大学出版社,2001
  [3]史惠康. Borland C++ Builder实用编程技术[M]. 北京:中国水利水电出版社,1999


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

C++ Builder? 自动变速器? ECU? 液力自动变速器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈