最近一直在做一个台体控制软件的二次开发,设计的总体思路如下:
思考一:
控制设备可以是单片机、控制脚本等,通过RS232口和我的台体控制软件通信。为了使控制设备的协议
不因被控制设备不同而修改,因此在控制设备和台体控制软件跑自定义私有协议,台体控制软件根据不同
的被控制设备做协议转换。
同时为了满足控制设备可以同时控制多台不同的设备,自定义协议有地址段。
思考二:
台体控制软件怎么设计呢?
首先,台体控制软件接收控制设备的命令,做一个协议check和分发器,check到一帧数据,根据Address
分发到各个设备的命令queue。
然后各个被控制设备的返回数据,通过管道技术发送到串口的发送PIPE。
各个被控制设备模块,根据自己的协议做协议转换。同时建立一个command queue,不停的接收协议分发器,下发的数据。
MFC的STL库:
网上有很多资料,自己去查就好;
首先包含头文件:
#include <cstdlib>
#include <iostream>
#include <queue>
using namespace std;
然后
queue<type> name;
/********************************
队列的操作:
back()返回最后一个元素
empty()如果队列空则返回真
front()返回第一个元素
pop()删除第一个元素
push()在末尾加入一个元素
size()返回队列中元素的个数
********************************/
子线程传递消息:
#include <process.h>
用_beginThreadex创建线程,
1、在线程里调用GetMessage或者PeekMessgae,系统就会为线程自动创建消息队列;
2、给线程发送给消息:PostThreadMessage
这里面都是用队列去解决程序的解耦和分层,也就是用数据流去解决。以后有了心得再继续吧。。。。。。