串口通信类(2)

现假设有一系列产品我们需要使用软件控制其运作,我们可以通过向设备发送各种指令来达到此要求,首先由于产品种类较多,而且有些产品是纵向升级的,升级之后的产品基本上保持原有功能基础上加了些新功能,基于此要求,我们在设计相应类时,可以使用继承的方法,通信基类使用抽象类不允许直接实例化,仅提供一般串口操作的方法,比如发送指令及关串口等操作(初始化串口及打开串口操作在构造函数中完成),这样有任何产品只要从这个类继承即可调用基类函数,而且考虑到产品升级,只要继承相应的基类,重新相应的方法即可,即可以重用代码,结构又比较清晰,下面是一些示例代码

using System;
using System.IO.Ports;
using System.Threading;

namespace TripodDemo
{
    
/// <summary>
    
/// 串口操作通用类,抽象类防止类别直接实例化
    
/// </summary>

    public abstract class ComPort : IDisposable
    
{
        
/// <summary>
        
/// 使用变量锁定对象
        
/// </summary>

        private object objComm = new object();

        
/// <summary>
        
/// 串口对象
        
/// </summary>

        private SerialPort com;

        
private bool disposed = false;

        
SerialPort

        
Dispose & Close

        
发送数据
    }

}


using System;
using System.IO.Ports;
using System.Text;

namespace TripodDemo
{
    
public class SerialQ01 : ComPort
    
{
        
构造函数

        
读时间

        
设置时间

        
发卡

    }

}


using System;
using System.IO.Ports;
using System.Text;

namespace TripodDemo
{
    
/// <summary>
    
/// 产品Q01的长升级版本,大部分功能同Q01,但发卡模块增加有效期
    
/// </summary>

    public class SerialQ01A : SerialQ01
    
{
        
构造函数

        
发卡
    }

}


源码示例:/Files/chenzz/TripodDemo_cs.zip
/Files/chenzz/TripodDemo.zip
posted @ 2008-05-01 08:15  nSibo  阅读(545)  评论(2编辑  收藏  举报