20140401
- 根据日志寻找 SkyEye 服务端本周两次崩溃的原因
20140402
- 测试虚拟机访问 SMS Modem 是否可行
- 本地调试 SMS Modem 通信
20140403
- 202.11.4.62服务器上调试 SMS Modem 通信
- 串口通信不稳定,有一定概率发送失败
- 根据孙亚清的需求,调整数据库设计
- 修改
contract
表:直接用varchar
类型存customer
- 删除
customer
表
- 修改
20140404
- Log中加入 SMS Modem 的输出
- 尝试检测 SMS Modem 发送状态
20140408
- 实现短信发送失败重试功能:发送
CONN
短信10秒后,如果设备尚未上线,重发一次短信 - ESXi 上安装 Windows 7 用于开发 LC300 协议的通信程序
20140409
- 通读三份照明控制通信协议,有疑义的地方与曾磊讨论
20140410
- 浏览曾磊拟定的数据库设计方案草案
- 与曾磊讨论数据库设计
20140411
- 写数据库初始化脚本
20140414
- 更新数据库初始化脚本
- 更新数据库设计文档
20140415
- 搭建 Windows 开发环境
- 建立 Visual Studio solution, 将库依赖关系和编译选项设好。
20140416
- 设计通信程序类结构
- 制作ESXi启动盘备份(完成1/2)
20140417
- 从基类框架开始写,函数体留空
- CMake编译MySQL Connector/C
20140418
- 使用 MySQL Connector/C 连接数据库服务器
- 用 Win_XP toolset 编译 MySQL Connector/C, 以支持 Windows XP
- 将数据库操作封装到
DatabaseConnector
类中
20140419
- 添加
ConfigReader
类,从config.ini
读取配置 TaskManager
类连接数据库,读取任务- 将代码移到
namespace sansi::ledcontrol
20140421
- 解决数据库查询中文显示乱码问题
- 客户端连接和结果使用Windows默认的gbk编码
- 服务器存储依旧用utf8
- 只要连接后设置好字符集参数,字符集转换是服务器自动做的
- 新增
Task
类存放TaskTodo
和TaskDone
表的各个字段 - 从数据库读取
TaskTodo
记录,添加到队列中待处理 - 根据讨论结果,更新数据库描述文档和数据库创建脚本
20140422
- 定时读取
TaskTodo
中的新任务,添加到任务队列 - 封装
Boost.Log
库,用来记录日志,代码独立放在toolkit
项目中
20140423
- 用
toolkit/utility/logging
把日志记录到文件,并将info
以上等级的记录同时输出到 console - 空的任务处理逻辑,将来根据任务命令类型,新增相应的处理函数
20140424
- 更改日志条目格式,方便人工查看
- 从数据库读到新任务后,直接绑定处理函数,由
io_service
对象自行调度执行 - 开始写设置控制器调光模式
Command=3
的处理函数- 根据MAC地址,从数据库查询控制器使用的协议,生成相应的
ControllerConnection
派生对象 - 如果是TCP通信,从数据库查询IP地址和端口,记录到对象
- 根据MAC地址,从数据库查询控制器使用的协议,生成相应的
20140425
- 对任务指定的控制器,如果是上海协议,TCP连接,则发起TCP连接
- TCP连接对象的读操作如下,任何一步出错,都从新开始读一个新的帧。
- 先读16字节 header
- 检查帧起始符
- (以下待实现)
- 检查数据长度是否越界
- 读数据长度+3 (CRC16和帧结束符)字节
- 检查帧结束符
- 验证CRC
- 整理工具函数
- 字节数组到整数类型的转换
- 整数类型到字节数组的转换
20140426
- ESXi上用于提供网络存储的虚拟机操作系统从NexentaStor换成NAS4Free。
- NexentaStor最近几天性能不稳定
- TCP连接对象的读操作
- 检查数据长度是否越界
20140428
202.11.11.201
,202.11.4.62
,202.11.4.63
升级: Ubuntu Server 13.10 => Ubuntu Server 14.04 LTS- GitLab 6.6.4 => 6.8.1
- GitLab Shell 1.8.0 => 1.9.3
skyeye-server
重编译(依赖的libboost库升级了: 1.53.0 => 1.54.0)- 整理工具函数
- crc16
- SkyEye协议和LC300协议都附了crc16的实现
- 它们的polynom是一样的 (1021),即
x^16+x^12+x^5+1
- SkyEye的实现比LC300快4.7倍(对1000000个长度1000的随机数组分别用两种实现计算CRC16测得)
- 简单逐字节求和
- 数值类型到hex string的转换
- 数组类型到hex string的转换
- crc16
- TCP连接对象的读操作
- 读数据长度+3 (CRC16和帧结束符)字节
- 检查帧结束符
- 验证CRC
20140429
- 在 202.11.4.62 上测试新的 SMS Modem 硬件
- SkyEye服务端的短信发送现在较之前稳定了
- 等李瑞给新硬件加好外壳,就可以把硬件转移到机柜去使用了
- 用 template function 重写
toolkit\cast
,减少代码量,避免对不同类型实现的重复代码 - 在处理任务和TCP读取的流程中增加多处 log output ,方便调试时寻找问题
- 整理工具函数
- MD5