6月18号日报内容

siyuan 2024-06-18 23:42:40 +08:00
parent d21fe8d2c9
commit 6845648a09

47
2024-6-18.-.md Normal file

@ -0,0 +1,47 @@
# 完成了什么?
主要是对昨天出现的问题进行调研,为什么修改之后设备之后,显示修改成功,却没有修改。有以下两个原因:
一: 设备本身不支持,无法进行修改。
二: 设备支持,但是参数不在设备允许范围内
三: 遇到错误没有返回ERROR的原因是还是对项目没有更深入的了解在遇见错误时没有进行通知导致程序不知道遇见错误从而忽略导致出现显示修改成功却没有修改的问题。
还有就是设备名称中文乱码问题旭哥对我说是因为UTF-8编码问题我定位了很久没有定位出来还是不够细心没有考虑到xml本身就是使用utf-8编码的对代码理解不深刻。
在定位到问题之后我就开始查阅怎么打开将utf-8 转化为 Gb2312 查阅了https://www.cnblogs.com/cheyunhua/p/15915130.html 发现使用 simplifiedchinese.HZGB2312.NewEncoder()进行转化处理。
然后我就使用该编码进行转换但是还是乱码就开始怀疑是不是这里的问题就继续测试将GB2312 转化成 UTF-8 发现也是乱码最后确定是是自己转码错误所导致的问题但是我经过google 和 百度之后,发现都是使用 simplifiedchinese.HZGB2312.NewEncoder() 函数将UTF-8 进行转化的,就没有怀疑,直至下班之前也没发现问题所在。
直到下班之后蔡总给我说GBK可以完全兼容GB2312然后我就使用了GB18030 进行编码转换发现确实可以那么我就思考为什么HZGB2312编码不行呢在经过了解之后经过源码的阅读发现
HZGB2312编码是基于ASCII 的编码和GB2312 的处理方式不同导致了字符的错误显示HZGB2312主要用于这种编码在传输过程中使用了 ~{ 和 ~} 来切换到 GB2312 模式和返回到 ASCII 模式,所以乱码一般都包含~{ ~{后面的字符就是GB2312编码。下午没有解决编码的主要原因是没有深入源码通过源码阅读一切就明了了。
# 学到了什么?
1. 学到了如何进行编码转换,并以后尽量使用兼容性好的,遇见错误尽量多测试,考虑为什么会出现这样的情况,并深入源码,查找答案!
2. 学到了不能一头撞到墙上,需要多思考。
3. 更加深入源码之前不知道观察者是干嘛的通过对源码阅读和理解得知通过观察者阻塞消息判断设备发送的信令是否收到了或者是否有错误如果有错误的话应该在Hander层进行相应的处理例如通过Notify进行通知观察者错误消息这样观察者就可以在server层向上抛出异常。
4. 根据文档理解了设备设置的其他功能,如设置录像计划等,并更加的熟练抓包分析信令,通过信令分析收发包是否正确。
# 后续任务
将会观看级联相关代码深入理解sdk相关代码
# 反思
没有认真的思考,没有认真深入源码,后续将会改正。