编程问题及解决方法 2008年10月10日星期一.docVIP

编程问题及解决方法 2008年10月10日星期一.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程问题及解决方法 2008年10月10日星期一.doc

开发环境:BC6.0 问题1:采集过程中CPU占用为100% 的问题 问题2:如何保证从串口获取某一数据整数倍的字节数据? 问题3 :在对长序列进行中值滤波时,总是出现内存不足的错误 问题 4:当在TTimer事件响应程序中增加了一段代码后,程序不能正常运行。 问题 5:调用TForm的ShowModal()方法时,出现“Cannot make a visible window modal”错误提示信息。 问题 6:字符串与空串的比较问题 问题 7:关于路径分割问题 BORLAND第三方组件安装方法 如何获取当前可执行文件的目录? 如何使TChart8.0控件显示中文? 动态分配空间注意事项 符号函数Sign的使用 2008年10月10日星期一 本程序串口通讯使用了串口通讯组件,该组件为下载的第三方组件,使用方法通过自己摸索,现已基本掌握。该组件源代码包括comm.cpp,comm.dcr,comm.h三个文件。使用时,首先要安装组件,然后在samples组件列表中出现该通讯组件图标。使用该组件的方法同其他组件,但是必须将源代码复制到你的源程序目录中。 使用该串口通讯组件时,一定要注意将正确的参数传递给组件,参数的设置一定要与组件的参数定义一致(可通过察看源代码来确定组建参数的设置)。我在使用过程中,就是由于参数设置不一致,导致了数据传递(波特率)错误,是信号不能正确发送和接受。 2008年10月20日星期一 增加了峰值显示功能、扣除基线功能。 2008年10月24日星期五 增加了扣除背景(基线)、分页/全显功能、数据保存/读取/数据导出功能; 问题1:采集过程中CPU占用为100% 的问题 解决了在采集过程中CPU占用为100% 的问题,这导致了程序不能正常操作问题。该问题与不断更新RichEdit组件标题,而组件标题越来越长有关。通过改用AnsiString变量保存RichEdit窗口内容,用richedit-Lines-Add()来改变RichEdit窗口内容,问题解决。 问题2:如何保证从串口获取某一数据整数倍的字节数据?首先判断缓冲区可读字节数,然后求得整数倍的数据值,该数据值要小于缓冲区可读字节数,然后进行读缓冲区操作。 问题3 :在对长序列进行中值滤波时,总是出现内存不足的错误,而检查程序没有发现错误?中值滤波使用了三层循环,对堆栈空间消耗较大,在project/option/linker表中调整最大栈大小(Max stack size ),由0x100000调整为0x400000,问题解决。 问题 4:当在TTimer事件响应程序中增加了一段代码后,程序不能正常运行。现象是程序运行后CPU占用100%,一会儿报错。这段代码完成去除采样信号的无效的头数据,其算法是首先判断采集到缓冲区数据的个数,当数据个数已达到无效数据个数时,从缓冲区读出无效数据。去掉这段代码后,程序运行依然正常。TTimer事件响应程序中调用了TChart控件,错误信息只与TChart控件有关。问题出在哪里呢? 分析:通过跟踪,增加代码没有问题,可以正常通过。判断问题与程序代码无关,可能与采集到的数据有关,影响到TChart控件的正常运行。由于是空采集,采集到的数据都是65535,由于数据都相同,从而导致TChart控件运行不正常。修改程序,当采集到的数据都是65535时,改变其中一个数据值。修改后程序运行正常,问题解决。 2008年11月14日星期五 今天遇到了一个问题,当进行中值滤波时,出现指针错误。跟踪发现,错误是在滤波模块运行结束后出现的,这说明与滤波程序无关。后来发现滤波后数据要在TChart控件上显示,而滤波结果为65535组成的常数序列,因此导致了问题 4的错误。 2008年11月24日星期一 当从历史数据文件中读取数据进行显示时,欲想将数据显示于监视对话框,当数据个数较大时,将花费很长时间(10万数据大约1分钟),这是由于将数据转换为文本数据时,利用ansiString类型变量保存转换的文本数据,该变量存储字符数越多,处理速度就越慢,占用CPU时间也越多。解决办法是转换一部分数据后,马上放入数据显示区显示,然后再清空ansiString变量。 2008年12月8日星期一 峰值条件:满足下列条件的值为峰值,横坐标为峰值点。 , 2009年5月13日星期三 C++Builder6 源代码组件安装步骤:执行/Component/Install Component/,在对话框中选Into new pakages页面,在Unit file name编辑框输入组件文件名(路径\comm.cpp),Pakage file name编辑框输入组件包文件名(例如 路径\SeriesComm.bpk),

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档