2022.4.25
给可视化部分增加了导出pcd的功能,但由于点云数据庞大,导出和读取时都需要几十秒的时间。(打算研究一下pcd文件的格式,从而自己实现一个动态写入的方法,达到获取一个点云数据便将其写入到文件,最终再回写文件头部分,从而省去导出时间)。关于读取的优化暂时没有思路。
2022.4.26
修正了数据包终止时间错误的bug,添加了自动终止录制的功能(2.5s没有收到消息则自动终止录制)。
将数据包项目和可视化项目移植到小车上(修复了一些之前没发现的bug),并尝试录制了原始数据,已经没有太大的问题,但仍旧存在一些小bug。
2022.4.27
可视化部分需要从小车移植到上位机,因此需要将数据接收部分更改为socket通信,并创建一个从共享内存接收消息并将消息发送到socket的接口项目。
初步学习了c++或者说c的socket,编写了一个聊天的小demo。感觉c的socket还是非常底层的,通过各种系统调用来实现,有点像上学期写的OS课设。
2022.4.28
完成了服务端大体框架和流程,能够发送共享内存的消息到客户端。效果如下:
克服了几个问题:判断客户端是否断开连接,读取消息线程因阻塞无法正常结束,服务端接收命令停止。明天将修改可视化部分,尝试用可视化部分接收数据判断效果。
2022.4.29
将可视化部分的通信模块从共享内存修改为socket,可以正常显示各种数据。但仍旧存在一些socket上的问题需要修正。
2022.4.30
将服务端放置在板上,可视化项目防止服务器上,测试发现发送一段时间消息后就无法继续发送,调试了很久发现是EAGAIN错误,这是非阻塞write导致的,也就是TCP缓冲区不足的问题,暂时还没有解决的思路。
2022.5.1
由于今天接触不到板子,不方便调试bug,去学习一下c++在windows下的socket库,方便将来把可视化项目迁移到win平台。