除BUG记

我负责一个模块,功能比较简单,就是测量环境温、湿度,外加控制空调开/关、温度设定。就是这么几个功能,就反复试验、修改,才达到稳定。在调试时,出现各种各样的BUG,一些是编程时候出现的语法错误,一些是功能设计不合理的原因。其中有个BUG折腾了好久,今天终于发现原因,这还是别人帮助我才解决的。下面看看这除BUG的过程:

   

空调通讯方面问题比较多:

1、起初是有时候出现空调与模块完全不能通讯的现象;

2、出现空调与模块单边通讯的现象,即空调收到模块的指令,但模块没有收到空调返回的信息;

3、出现空调与模块首次上电时,情况2发生,但不重启的情况时,第二次之后完全通讯成功(双边通讯)的现象。

针对情况一,通过请教OMRON公司的技术人员,我了解到温控器接收指令与发送指令之间必须有一定的时间间隔,大概有500ms就可以了。所以我在发送数据程序中加入了500ms的延时指令,问题1情况不在出现,但随之而来的是问题2的频繁出现。这个问题困扰了我很长时间。在现场我做了如下试验:

首先,断开温控器与模块之间的RS485连接,然后通过usb转串口线把温控器与调试所用的笔记本连接起来,然后通过通过串口调试助手调试温控器,目的是为了验证温控器是否能够正常工作。经过试验,结果表明温控器完全能够正常工作。电气连接示意图如图1

 

1 温控器与上位机连接

接着,断开笔记本与温控器的连接,然后通过usb转串口线把模块与调试所用的笔记本连接起来,然后通过串口调试助手调试模块,目的是为了测试模块软件是否正常。经过试验,结果表明模块能够成功接收到串口助手发送过来的数据。电气连接示意图如图2

2  模块与上位机连接

最后,重新连接温控器与模块,上电,设置温度,情况2再次出现。电气连接示意图如图3

3 温控器与模块连接

同时连接温控器、模块、笔记本时候,则温控器与模块之间能够够正常通信。电气连接示意图如图4

4 温控器与模块、上位机连接

到此初步估计是由于RS485接线问题,经过询问OMRON公司技术人员可知,11时,RS485总线终端电阻(约为120欧姆)可有可无。模块上接有终端电阻,当我尝试去掉该电阻时,针对图3情况时,问题2得到解决。但出现问题3

经过考虑,在模块上电初始化中,我加入了向空调发送“开空调”程序,这段程序能够保证每次模块上电时都要重新开启空调,以保证空调随时进行接收别的指令(当空调处于“关”时,它是不工作的,即使空调已经上电)。问题3得以解决。

到这里,本以为可以结束了,其实还有很大的问题,如果在模块上电之后才开空调的话,那么那个初始化中加入的指令就不会起作用,还是会出现问题3。这个方法治标不治本,后来,在一同事的帮助下,终于从根本上解决的问题。问题是这样解决的,只在一个地方加了这么一条语句。

void beginSend(void)

 uint8 i = 0;
 sendEnable(); //设为发送  
 TXSTAbits.TXEN = 1; //使能发送 
    for(i=0; i< sendCount; i++)
    {
   TXREG  = sendBuf[i];  
   while (!TXSTAbits.TRMT);   //TSR为空时置TRMT = 1
    }
    receEnable();    //设为接收
    sendCount = 0;
    receCount = 0;    //这个很重要
    TXSTAbits.TXEN = 0;
    Delay10KTCYx(100);   //延时500ms    
}

关于这个函数就不多解释了。对比我这样、那样的测试,还是没有找到错误的根本原因,人家只是看了一遍调试报告,就立马找出了问题的所在。这固然有经验的问题,但更多的是我自身对于问题的分析不够冷静、思维不够严谨。还没有形成自己的一套发现错误、分析错误、解决错误的思维体系。在遇到“比较怪”的情况时,就乱了方阵,试图用穷举法把可能出现错误的地方都测试一遍,这大大消耗了时间,并且本质上讲并不能对解决问题有效的帮助。反而可能因为混乱一通的测试,遇到更多别的问题,最终偏离了正确解决问题的道路。

发现并找到一种合乎科学的编程习惯、除BUG思路是以后工作时的重中之重。

 

 

 

 

 

 

 

 

 

 

bug 录是一种软件开发中常用的方法,用来录程序中出现的错误或者异常情况。它是软件测试的重要环节,有助于开发人员更好地追踪和解决bug,同时也方便团队间的沟通和协作。 在Word末班的情况下,bug录可以被用来录Word应用程序中出现的各种错误和问题。这些问题可能是功能缺陷、用户界面问题、性能问题等。通过录这些bug,可以帮助开发人员准确定位问题,并提供修复的指导和参考。 一个有效的bug录通常包括以下几个主要方面: 1. 问题描述:详细描述bug的具体表现和出现的环境条件,以便开发人员能够复现该问题。 2. 问题重现步骤:提供重现该bug的详细步骤,让开发人员可以按照这些步骤来定位和修复问题。 3. 优先级和严重程度:对bug进行分类,分别给出优先级和严重程度,以帮助开发人员优先解决重要且影响较大的问题。 4. 日志和截图:提供相关的日志录和截图,以便开发人员更好地理解问题和进行调试。 5. 解决方案或修复建议:如果可以,尽量提供对该bug的解决方案或修复建议,这样可以帮助开发人员更快地解决问题。 此外,一个好的bug录系统对于跟踪和管理bug也非常重要。团队成员可以通过该系统中的与bug相关的字段,例如状态、指派人等,了解bug的当前状态和处理进度。这样团队内部可以更加高效地分工合作,从而提高整体的开发效率。 综上所述,bug录在软件开发中是十分重要的一环,它对于发现、修复和追踪问题起到了关键的作用。在Word末班中,通过良好的bug录和有效的协作,可以帮助开发团队更好地完善和提升Word应用的质量和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值