20140102

  1. 做个Qt设备状态查看界面的草样
    • 连接数据库
    • 显示device id列表(按last_connected排序)
    • 显示选中device的device表内容和playlist内容
    • 显示选中device的status表内容
    • 显示选中device的event表内容

20140103

  1. constants.h 中可能会变的参数移到json配置文件里,启动时用cppjson库解析
  2. sql_statements.h 中的SQL 语句移到json配置文件里,启动时用cppjson库解析
  3. 清理不必要的 #include

20140104

  1. 调整Qt界面, 设备列表显示当前状态

20140106

  1. 测试 sms modem 串口通信代码
    • 波特率设置成115200
    • 部署时需要在 config.json 中指定连接的串口设备名,现在写的是 /dev/ttyS0 具体要看到时连接的是哪个口
    • Fedora开发机上短信发送成功
  2. 清除全部using directives

20140107

  1. 清除头文件中全部using declaration
  2. 检查各处container成员访问是否可能越界
  3. 清除函数参数中的const pass-by-value写法
  4. 检查函数返回值是否有本地变量引用

遇到的问题如下:

  1. Fedora开发机改成固定IP之后,之前搭建的gitlab服务器出问题了。现在把所有的repository备份出来了,重新配置服务器。

20140108

  1. 配置ubuntu 13.10开发机,节省fedora上从源码编译安装gcc和libboost的耗时
  2. 202.11.11.162上部署测试用数据库

20140109

  1. 从Qt官网安装 Qt 5.2.0 (Ubuntu官方源的Qt Creator显示有问题,会弹出一些无响应的空窗口,原因不明。官网安装的版本就没问题。)
  2. 修正SkyEye-Monitor设备列表添加状态字段后,信息tab内容不显示的bug。
    • sql语句构建过程中用到设备列表项目的text()方法,现在该方法返回的不仅是device_id了。需要提取id。
  3. 调整SkyEye-Monitor设备列表排序
    • 先按设备状态排序:在线→一般故障→……→离线
    • 再按最后连接时间排序:最近连接的排在最前

20140110

  1. 把成员变量中的指针用shared_ptr替换
  2. 解决keepalive_timer会不断触发频繁调用handler的bug
    • 当cancel这个timer的时候,handler会被调用一次,传入参数为error,内容是operation canceled。之前的handler函数不理会传入参数,所以这次调用也会发送keepalive包,并且重置timer。
    • 修正后的handler检查error,如果意外触发,打印error直接退出handler,不发送keepalive,也不重置timer。
  3. 把async操作的handler都用 boost::strand 序列化
  4. 解决串口访问permission denied
    • 把用户加到dialout组
  5. 三楼机房服务器安装ubuntu server
    • 202.11.20.83

遇到的问题如下:

  1. tcp_connection断开后,close和析构函数的调用有bug,待跟踪
  2. 尝试重用socket (连接数超过最大可打开文件数限制时,如何应对传入连接)

20140111

  1. 配置Version Control System服务器
    • 固定IP 202.11.11.201
    • OpenSSH Server
    • redis-server
    • ruby
    • mysql-server
    • gitlab

相关文档见 http://qingpei.me/sansi-book/git/gitlab_server.html

20140113

  1. 配置Version Control System服务器
    • GitLab Email配置,系统通知用 [email protected] 帐号发邮件
    • 每天早上5点自动备份数据库和代码库,备份保留一周
    • 添加Group: SkyEye和LED-Calibration
    • 添加User: zhangqian ouwenli sunyaqing qingpei
    • 添加Project: 此前备份的全部project,包括我和孙亚清的代码

20140114

  1. 重写关闭连接 (用户发起或读到 EOF )逻辑,避免socket没有close或者close两次的bug。
  2. 测试多线程运行服务器
    • boost::asio::io_service::strand::wrap 将异步handler隐式加锁之后,多线程运行服务器不会遇到race condition了
    • 最大同时连接数(最大打开文件数)为100X (1024-依赖的动态链接库等文件的数量-正在写入的log文件数量等等)
    • 测试了Release版性能,结果 记在了README里
  3. 通过API获取服务器公网IP (客户端能连接的IP地址)
  4. 解决最大文件数限制
  5. 消除两处内存泄露

20140115

  1. 整理一份 git使用指南

20140116

  1. 修正 CMakeLists.txt 对Clang编译器的C++11 Flag设置
  2. 修改 CMakeLists.txt ,增加 googletest
  3. 为以下模块写单元测试
    • toolkit
    • config
    • packet

遇到的问题如下:

  1. 网络和数据库相关的测试不好写
    • 各个对象起初设计的时候耦合度就高,成员函数的参数多为之前一系列函数操作后的结果;内部也常需要调用外部的资源。
      • 比如查询状态需要一个socket连接
      • 比如发送一个登陆成功应答,要查询数据库得到手机号
      • 比如 tcp_connection 调用 tcp_server 的函数
    • 于是生产函数需要的传入参数对象很难
    • 另外,函数的执行结果大多不是通过返回值来传递的。
      • 收报文的函数A把任务交给报文分类的函数B
      • B又将报文转给某一类报文的处理函数C
      • C再调用数据库和网络通信的一些函数来响应收到的报文,但却很难用一个成功/失败的标志作为返回值
      • 尤其是对异步函数的调用,设好callback之后就直接返回了,这时候成功或失败还无法判定
    • 所以目前只为离线的工具函数写了测试

20140117

  1. 写 skyeye_server 命令行用法
  2. 更新 亮度矫正memo

20140118

  1. Wikipedia上搜集色彩校正相关材料 PDF
  2. 读libgphoto2的sample,了解如何操作相机

20140120

  1. 读专利文档:LED显示屏非均匀性在线校正系统和校正方法。了解其校正系统读构成和校正流程。
  2. 读昨天搜集到的资料,了解色彩校正的一些概念和技术,写 摘要

20140121

  1. 测试 gphoto2 与 Olympus E-520 的兼容性
    • 可以auto-detect,可以list-files,可以get-all-files
    • 不可以capture-image
  2. 测试 gphoto2 与 Canon EOS 7D 的兼容性
    • 可以auto-detect,可以list-files,可以get-all-files
    • 可以capture-image
  3. 更新 [Image Capture文档](http://qingpei.me/sansi-book/led_calibration/image_capture.html

20140122

  1. gphoto2 安装脚本
  2. 继续读校正相关资料

20140123

  1. 读校正相关资料,更新 文档
  2. 搜索raw decoder相关信息,目前看来以下两种途径可行
    • 调用ImageMagick或dcraw进程处理raw文件,读取处理结果
    • 链接libraw库,直接读取raw图像

考虑实现复杂程度的话,调用外部程序读raw的方式,开发时会更方便做实验比较。把处理好的raw写成16bit的tiff,也让后续处理时库的选择几乎不会再遇到格式支持问题。

20140124

  1. 读校正相关资料,更新 文档

20140125

  1. 浏览 Color Appearance Models by Mark D. Fairchild
  2. 写实验框架,把各个步骤要完成的核心任务列出来,规定各步骤的输出
  3. 添加lib目录(目前有opencv)

20140126

  1. 安装imagemagick
  2. 熟悉imagemagick的python bindings
  3. 安装libraw
  4. 安装dcraw

results matching ""

    No results matching ""