物联网大赛有感

经过一个多月的努力,大赛的题目智能管理系统做完了,核心大方向是仓储思想,做了基于ZStack协议栈的zigbee节点、基于linux的Qt应用程序、tomcat上JavaWeb应用程序,以上三样东西构成了传感层、网关层、应用层。TI的ZStack博大精深,半开源的东西其实挺好的,成了ZIgbee的代言人了,学习了一个周,操作系统的思想包含其中,让数据的采集和传输变得非常有序(任务和事件的思想)。Qt第二次接触了,也比较有点驾轻熟路的感觉了,学了Qt操作数据库、Qt操纵串口、QtGUI特效等新知识,对信号与槽有更深的了解了,当然还没到直接看Qt源码的程度来了解她们呢,大神见笑了。上次接触了Qt4,这次来了Qt5,感觉变化还是有点的,适应适应就好。

JAVA Web上是在Linux系统上写的,第一次在Linux上安装和配置jdk、eclipse、tomcat花了近5小时的时间,eclipse EE 才能运行动态网页。这里提一点,也正是我犯的错误:我的tomcat解压在了/usr/local/tomcat下,eclipse解压在/usr/local/eclipse下,运行/usr/local/eclipse/eclipse&后,在eclipse里配置tomcat后,运行 Dynamic Web 程序时,eclipse总是识别不到tomcat,为什么呢?想了好久,觉得可能是这两个原因:1、权限问题,用sudo /usr/local/eclipse/eclipse& 运行后,就识别tomcat,好吧,权限问题很重要,博主忘记了当时解压tomcat到/usr/local/tomcat时,用的是管理员权限了,即用sudo运行了解压命令了;2、/usr/local/tomcat目录的写操作得有权限。以上两点目测会导致非管理员权限打开eclipse后,识别不了tomcat。

Qt方面,碰上了万恶的段错误,程序崩溃,好吧,我好好查查指针哪里问题。我发现,我自己写了个取字符串子串的函数(考虑了拷贝字符串时的空间大小问题),该函数第一次运行没问题,第二次开始就有问题了。具体哪里有问题没有找到,留下了一个遗憾。改用了C++原生了string类的substr接口后就没有段错误的问题了(好吧,博主水平还不够)。这样就需要在char *(串口接收函数将数据存放在char *指针所致的内存空间内)、string、QString这三个类之间进行转换。

大赛比的是应用能力,我们三层都做了,基本算是一套了,当然离产品化还有很大的距离,哈哈,心得就先写这么多了。谢谢阅读!

你可能感兴趣的:(心得)