图12 RGB差异
从上面的差异可以看到,新的代码多了slot,其他的字节都依次向后推了一个数,看起来这样就没有问题了,那么为什么新的程序用旧的指令正常而新的指令反而不对,继续往下看,led.setColorAt(idx-1,r,g,b);和led.setColor(r,g,b);这两句调用就是实现RGB灯的语句,这两句并没有在此程序中定义,那么肯定调用了外部的文件,我们要找到它的上下文所调用和定义的地方,需要用到“Source Insight”,具体加入文件的过程大家可以百度,如果还是不会可以问我。用Source Insight打开分别打开这两个程序,把鼠标放在led.setColorAt(idx-1,r,g,b);语句上,Source Insight将自动找到这段语句定义的位置,所处的文件是MeRGBLed.cpp,这是C++的程序,我不是很懂,问题也许就出在两个MeRGBLed.cpp下的bool MeRGBLed::setColor(uint8_t red,uint8_t green,uint8_t blue)和void MeRGBLed::setColor(uint8_t red, uint8_t green, uint8_t blue)。
RGB调试的问题就到此为止了,mBot的程序员看见应该会修改的吧,不过这并不会影响到我们的正常使用,调试只是很小的一部,最主要的还是我们要把自己的代码写入到mCore中,经过测试,虽然同样的积木在代码区中的代码不同,但是结果都一样而且完全正常,所以我们下一次将进入主题,把自己的程序写入mBot小车,完成最后的项目任务。
总结,今天主要针对不同版本RGB积木调试出现的问题进行了解析,过程中提到了很多对编程有用的应用软件,还有寻找并处理问题的方法,希望对新手能有一些帮助,这也是一次对我自己的提升。总体来说,官方程序已经完成了大部分功能,虽然有点小瑕疵但并不影响我们学习和使用,mBot小车确实是个很好的学习开发工具,随着不断的更新改进,必将越来越完美。
`