PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_Sharp
[问题] 串行埠的委派接收要怎接口化
楼主:
chuinzong
(阿荣)
2020-06-09 18:11:09
各位好:
目前可以执行的程式Serial Port的接收端程式
由于现在想要在接口中添加SerialDataReceivedEventHandler,
以方便后面做单元测试(就是要开接口)。
// 程式码To Do部分
想询问各位高手,接口开启后
event SerialDataReceivedEventHandler PortDataReceived
要找寻什么资料,现在用委派的Function要怎么转接口化?目前卡关在这边。
public interface ISerialPort
{
void Open();
void Close();
void WriteLine(byte[] ByteData);
// To Do
// event SerialDataReceivedEventHandler PortDataReceived;
bool CheckOpenStaus();
}
public class DevicePort : ISerialPort
{
private SerialPort _serialPort;
private Queue<byte> _dataReceive;
public DevicePort()
{
_dataReceive = new Queue<byte>();
_serialPort = new SerialPort($"COM4", 19200);
_serialPort.DataReceived += new
SerialDataReceivedEventHandler(PortDataReceived);
}
public void Open()
{
_serialPort.Open();
}
public void Close()
{
_serialPort.Close();
}
public void WriteLine(byte[] ByteData)
{
_serialPort.Write(ByteData, 0, ByteData.Length);
_dataReceive.Clear();
}
private void PortDataReceived(object sender,
SerialDataReceivedEventArgs e)
{
byte[] buffer = new byte[4];
int length = (sender as SerialPort).Read(buffer, 0,
buffer.Length);
foreach (byte i in buffer)
_dataReceive.Enqueue(i);
}
public bool CheckOpenStaus()
{
return _serialPort.IsOpen;
}
}
以上
谢谢
作者:
Litfal
(Litfal)
2020-06-15 20:35:00
接口一样宣告成event然后实作event把资料丢出去
https://docs.microsoft.com/zh-tw/dotnet/csharp/languag
e-reference/keywords/event
继续阅读
[问题] installshield 2015le 问题请教
ocean0120
[问题] 读取txt列成矩阵
camry2009
[问题] 请问可以用C#建置 用python开发吗
morningjis
[问题] 单元测试的串行通讯问题
chuinzong
[问题] webBrowser.Navigate问题
a0929935070
[问题] []的使用方式(非阵列)
a23393830
[问题] 宣告变量new放在最左边
a23393830
[问题] .Net Core MVC 的异步写法
sdtt
[问题] 丢阵列中文字串给c++ dll 长度异常
tw30912
[问题] 能在软件安装时,用网页的方式去呈现吗?
asd51052000
Links
booklink
Contact Us: admin [ a t ] ucptt.com