VS2010串口通讯架构设计初探

本文探讨了串口通讯在VS2010下的架构设计,包括串口接口、通讯协议接口和设备接口的设计。通过接口设计实现了串口连接、通讯协议解析以及设备命令执行等功能。作者分享了在实际项目中的实践经验,强调了接口设计和架构设计的重要性,以及在设计过程中遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

                 串口通讯架构设计初探----及其在VS 2010下的实现 

        串口以其物理线路少、传输距离远、工作稳定可靠而在微机通讯中得以广泛运用。近来由于机缘巧合,有机会得到真实的通过串口通讯控制LED显示屏及感应式读卡控制器的机会,本指望在网上能得到一些有益的指导,但在网上搜索多日,只见到一些串口方面较基础的、偏重编程方面的文章,鲜少有涉及其架构设计的,于是不揣冒昧,把一些真实的实践体会,撰成此文,聊补心中缺憾,诚望同道中人多多指正。

一.       接口设计

1. 串口接口设计

串口,其最基本的作用是通讯,从外观来看,即是读、写字节流,故其接口设计如下:

#pragma once

#include "SerialMessage.h"

class CSerialPort : publicCObject

{

public:

         CSerialPort(void);

         virtual~CSerialPort(void);

         virtualBOOL connect(

                                               const DWORD desiredAccess =GENERIC_READ|GENERIC_WRITE,

                                               const DWORD shareMode = 0,

                                               const DWORD flagsAndAttributes = 0,

                                               const DWORD bandRate = 19200,

                                               const BYTE byteSize = 8,

                                               const BYTE parity = EVENPARITY,

                                               const BYTE stopBits = ONESTOPBIT

                                               )const = 0;

         virtualvoid disconnect(void)const = 0;

         virtualBOOL PortRead( CSerialMessage *message )const= 0;

         virtualBOOL PortWrite( const CSerialMessage *message )const = 0;

};

       纯虚函数connect用于创建串口连接,同时设置其工作方式,如同、异步工作方式的选择,以及波特率、数据位数、停止位数及校验方式等;disconnect用于断开串口接连,在程序退出时或更改通讯参数时需要用到;PortReadPortWrite用于读、写字节流,其参数message兼作读、写缓冲区,其预计读、写长度及实际读、写长度都包含于其中。

2. 通讯协议接口设计

       由于RS485只规定了串口的电气特性,至于传输的比特流如何解释、通讯双方如何应答,则未作硬性规定。故实用中连入其中的设备是多种多样的,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值