Giter VIP home page Giter VIP logo

display's Introduction

Vscode mingw下opencv及多线程C++socket—Apple的学习笔记

目的:由于vslam都是用c++开发的,所以要多练习c++11,所以就自己设计项目来练手
立项:(适用于0.1版本)
名称:Display
功能:一个client将数据集中的png图片一张张读取,并且通过tcp socket协议传输给server端进行显示。
     特殊控制功能包括Server端的按键s是控制socket传输数据的开关,按键j是控制是否将当前传输的图片数据实时显示的开关。
工具链:coding用Vscode,编译用CMake+MinGw8.1(环境搭建可以参考我之前的文章)
数据集:在client端是读取png的数据集
工程共享路径: https://github.com/AppleCai/Display

设计说明:详见Design文件夹中的word说明文档 20190519更新为0.2版本,对应code在02文件夹中。变更说明

1. 重新设计了交互协议。对于接收头及数据的解析使用了状态模式设计。
2. 添加了心跳检测功能:server每隔1s发给client,client检查若5s内没收到则断开连接。
3. 数据/控制/显示进行了分离设计,删除了之前使用线程挂起的方式来实现暂停方式。
4. 代码进行了重构,线程由原来的socket和key,还增加了HMI和控制线程。
5. 文件结构变更,拆分为如下6个模块
	socket主要用来传输命令和数据。
	控制模块主要控制是否正常传输数据,是否传输心跳数据命令,是否暂停显示。
	key主要扫描s键(是否暂停传输),j键(是否暂停显示)

20190526更新为0.3版本,对应code在03文件夹中。变更说明

1. 将Server端的接收改成select异步模式,使能断线后重连。
2. 通过opencv图片叠加,添加logo及接收到的帧进行计数,显示页数。故增加了pic文件夹。
3. 移植到POSIX平台进行开发。
4. 对应client的测试code在进行sokect重新connect时候,使用了select异步IO模型,设置timeout为1s,加快了重连速度减少阻塞时间。

20190601更新为0.4版本,对应code在04文件夹中。变更说明

1.修改HMI到独立进程中。实现进程间通信,共享内存和信号灯的添加。
2.添加按键p为save显示中的图片,按键j为停止和开启显示。此2个按键用于IPC消息传输。

20190602添加阶段小结的思维导图,将练习技能转换为经验,文档在design文件夹中

display's People

Contributors

applecai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.