c# 客显(顾客显示器)应用实例
2014-11-25 20:53
288 查看
using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports;
/// <summary>
/// 客显
/// </summary>
public class CustomerDisplay
{
#region 成员变量
public string spPortName;
private int spBaudRate;
private StopBits spStopBits;
private int spDataBits;
private CustomerDispiayType dispiayType;
#endregion --成员变量
#region 属性
/// <summary>
/// 客显发送类型
/// </summary>
public CustomerDispiayType DispiayType
{
get
{
return dispiayType;
}
set
{
dispiayType = value;
}
}
#endregion --属性
#region 构造函数
/// <summary>
/// 构造函数
/// </summary>
/// <param name="_spPortName">端口名称(COM1,COM2,COM3...)</param>
/// <param name="_spBaudRate">通信波特率(2400,9600....)</param>
/// <param name="_spStopBits">停止位</param>
/// <param name="_spDataBits">数据位</param>
public CustomerDisplay(string _spPortName, int _spBaudRate, string _spStopBits, int _spDataBits)
{
this.spBaudRate = _spBaudRate;
this.spDataBits = _spDataBits;
this.spPortName = _spPortName;
this.spStopBits = (StopBits)(Enum.Parse(typeof(StopBits), _spStopBits));
}
#endregion --构造函数
#region Method
#region 公共方法
/// <summary>
/// 数据信息展现
/// </summary>
/// <param name="data">发送的数据(清屏可以为null或者空)</param>
public void DisplayData(string data)
{
SerialPort serialPort = new SerialPort();
serialPort.PortName = spPortName;
serialPort.BaudRate = spBaudRate;
serialPort.StopBits = spStopBits;
serialPort.DataBits = spDataBits;
if (!serialPort.IsOpen)
{
serialPort.Open();
}
serialPort.BaseStream.Flush();
//先清屏
serialPort.Write(((char)12).ToString());
//指示灯
string str = ((char)27).ToString() + ((char)115).ToString() + (((int)this.DispiayType)).ToString();
serialPort.Write(str);
//发送数据
if (!string.IsNullOrEmpty(data))
{
serialPort.Write(((char)27).ToString() + ((char)81).ToString() + ((char)65).ToString() + data + ((char)13).ToString());
}
serialPort.Close();
}
}
#endregion --公共方法
#endregion --Method
}
/// <summary>
/// 客显类型
/// </summary>
public enum CustomerDispiayType
{
/// <summary>
/// 清屏
/// </summary>
Clear,
/// <summary>
/// 单价
/// </summary>
Price,
/// <summary>
/// 总计
/// </summary>
Total,
/// <summary>
/// 收款
/// </summary>
Recive,
/// <summary>
/// 找零
/// </summary>
Change
}
调用:
CustomerDisplay display;
try
{
display= new CustomerDisplay(“COM1”,2400,System.IO.Ports.StopBits.One.ToString(), 8);
//收款
display.DispiayType = CustomerDispiayType.Recive;
}
display.DisplayData("3.24");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
using System.Collections.Generic;
using System.Text;
using System.IO.Ports;
/// <summary>
/// 客显
/// </summary>
public class CustomerDisplay
{
#region 成员变量
public string spPortName;
private int spBaudRate;
private StopBits spStopBits;
private int spDataBits;
private CustomerDispiayType dispiayType;
#endregion --成员变量
#region 属性
/// <summary>
/// 客显发送类型
/// </summary>
public CustomerDispiayType DispiayType
{
get
{
return dispiayType;
}
set
{
dispiayType = value;
}
}
#endregion --属性
#region 构造函数
/// <summary>
/// 构造函数
/// </summary>
/// <param name="_spPortName">端口名称(COM1,COM2,COM3...)</param>
/// <param name="_spBaudRate">通信波特率(2400,9600....)</param>
/// <param name="_spStopBits">停止位</param>
/// <param name="_spDataBits">数据位</param>
public CustomerDisplay(string _spPortName, int _spBaudRate, string _spStopBits, int _spDataBits)
{
this.spBaudRate = _spBaudRate;
this.spDataBits = _spDataBits;
this.spPortName = _spPortName;
this.spStopBits = (StopBits)(Enum.Parse(typeof(StopBits), _spStopBits));
}
#endregion --构造函数
#region Method
#region 公共方法
/// <summary>
/// 数据信息展现
/// </summary>
/// <param name="data">发送的数据(清屏可以为null或者空)</param>
public void DisplayData(string data)
{
SerialPort serialPort = new SerialPort();
serialPort.PortName = spPortName;
serialPort.BaudRate = spBaudRate;
serialPort.StopBits = spStopBits;
serialPort.DataBits = spDataBits;
if (!serialPort.IsOpen)
{
serialPort.Open();
}
serialPort.BaseStream.Flush();
//先清屏
serialPort.Write(((char)12).ToString());
//指示灯
string str = ((char)27).ToString() + ((char)115).ToString() + (((int)this.DispiayType)).ToString();
serialPort.Write(str);
//发送数据
if (!string.IsNullOrEmpty(data))
{
serialPort.Write(((char)27).ToString() + ((char)81).ToString() + ((char)65).ToString() + data + ((char)13).ToString());
}
serialPort.Close();
}
}
#endregion --公共方法
#endregion --Method
}
/// <summary>
/// 客显类型
/// </summary>
public enum CustomerDispiayType
{
/// <summary>
/// 清屏
/// </summary>
Clear,
/// <summary>
/// 单价
/// </summary>
Price,
/// <summary>
/// 总计
/// </summary>
Total,
/// <summary>
/// 收款
/// </summary>
Recive,
/// <summary>
/// 找零
/// </summary>
Change
}
调用:
CustomerDisplay display;
try
{
display= new CustomerDisplay(“COM1”,2400,System.IO.Ports.StopBits.One.ToString(), 8);
//收款
display.DispiayType = CustomerDispiayType.Recive;
}
display.DisplayData("3.24");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
相关文章推荐
- 利用c#制作托盘程序,并禁止多个应用实例运行
- c#中的委托和事件的简单实例_c#应用
- C#中使用反射机制得到类型实例应用Demo
- C#循环结构应用实例(三)
- C#循环结构应用实例-制作用户注册页面 推荐
- C#中动态数组(ArrayList )应用实例子
- 关于c#静态方法和实例方法的辨析和应用
- C#使用XmlDocument操作XML进行查询、增加、修改、删除、保存应用的实例(转载)
- 学习接口应用之C#接口实例
- 关于c#静态方法和实例方法的辨析和应用(转载)
- autoComplete +C#的应用 实例总结
- 【原创】 ASP.NET C#反射简单实例应用
- C#中事务的应用实例(转)
- C# 泛型集合实例应用
- C#正则表达式应用实例
- C#实践——委托实例应用
- ajaxPro2.0应用时的一些问题(C#)ajax的 (遮罩层)登陆实例
- Java调用C#的WebService实例三(实际应用)
- C#循环结构应用实例(一)
- C#流的应用实例