资源简介
简单的光源控制,只有写入,没有读取
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LightControl_LEILI
{
class VLLC514CH
{
#region 变量声明
private string receiveInfoFromSerialPort = ““;//接收来自光源控制器的反馈信息(发送信息的反馈信息)
private string sendInfoToSerialPort = ““;//发送信息给光源控制器的信息
#endregion
///
/// 打开与光源控制器连接的串口
///
/// 指定串口
/// 串口名称
/// 停止位
/// 奇偶校验
/// 波特率
/// 数据位
/// 是否连接上光源控制器标志
public bool OpenSerialPort(SerialPort SerialPort string PortName StopBits StopBits Parity Parity Int32 BaudRate Int32 DataBits)
{
try
{
SerialPort.PortName = PortName;//设定串口名称
SerialPort.StopBits = StopBits;//设定串口停止位
SerialPort.Parity = Parity;//设定奇偶校验
SerialPort.BaudRate = BaudRate;//设定波特率
SerialPort.DataBits = DataBits;//设定数据位
SerialPort.Open();//打开串口
if (SerialPort.IsOpen)//判断串口是否打开
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
///
/// 向串口发送数据
///
/// 指定串口
/// 串口是否打开标志
/// 需要发送的信息
/// 发送指令是否成功
public bool SendInfoToPort(SerialPort SerialPort bool IsOpen string Info)
{
int iReceiveInfoLength = 0;//接收光源控制器的反馈信息的长度
try
{
if (IsOpen)//判断串口是否打开
{
SerialPort.Write(Info);//发送指令
iReceiveInfoLength = SerialPort.BytesToRead;//读取光源控制器的反馈信息长度
byte[] ReadBuffer = new byte[iReceiveInfoLength];//初始化读取缓存区的数据数组
SerialPort.Read(ReadBuffer 0 iReceiveInfoLength);//读取缓存区的数据
SerialPort.DiscardInBuffer();//数据接收完成以后清空缓存区
for (int i = 0; i < iReceiveInfoLength; i++)//将接收到的数据转换成字符串
{
receiveInfoFromSerialPort += ReadBuffer[i].ToString(“X2“) + ““;
}
if (Info == receiveInfoFromSerialPort)//判断指令是否发送成功,如果发送成功会返回与发送指令相同的信息
{
return true;
}
else
{
return false;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13288 2020-12-16 16:36 VLLC514CH.cs
----------- --------- ---------- ----- ----
13288 1
评论
共有 条评论