2022.4.18
经过大量测试,记录的消息数和播放的消息数并无差异,然后利用strace进行了系统调用相关的测试,结果呈现在博客中,这里就不展开讲了,下一步打算先分析一下内存泄漏情况。
2022.4.19
查阅了很多关于内存池的资料,最终认为我现阶段的能力不足以写出高性能的内存池,没有必要自己再去写一个内存池,当下的性能已经足够使用。修改了播放器的播放架构,使得播放逻辑更加严谨,同时为了添加暂停功能,尝试添加键盘回调,但linux下c++并没有自带的键盘回调方法,我研究了两条线路(线路1:读取/dev/input/event文件,获取键盘事件的相关参数,但这样需要用sudo启动可执行文件,尝试了良久遂作罢;线路2:使用正常的命令行读入,但发现linux中并没有getch()这个方法,能够无缓冲读取字符,查找了资料,发现c++可以设置命令行的相关参数,从而设置缓冲区的大小为1,达到无缓冲读取字符的目的,实现了键盘回调)。
2022.4.20
测试了暂停功能,发现了暂停补时未计算和输入阻塞线程问题,并成功修正;尝试录制千佛山数据包,和另一组员测试发现存在数据问题和内存问题。
2022.4.21
有事情,暂停一天
2022.4.22
在数据包中添加了原始数据相关话题,由于缺少数据,暂时无法测试。
2022.4.23
构思在可视化部分点云数据的存储,由于点云是分散接收的,因此如果导出的话会形成很多pcd文件,并不是我想要的结果;但如果另开一个总的点云,再将所有点云数据都存储其中,会造成内存的双倍占用,对于本就稀缺的内存空间来说是不可接受的,如何解决这个问题将是接下来的研究重点。
2022.4.24
修改了关于共享内存部分的相关bug,同时将可视化部分的信号回调终止加上,但出了些问题,无法正常终止。