UniPRT SDK  v2.0.0.3
UniPRT.Sdk.Comm.ComConnection类 参考

实现串行通信并扩展 AComm 类的类。 更多...

类 UniPRT.Sdk.Comm.ComConnection 继承关系图:
UniPRT.Sdk.Comm.AComm UniPRT.Sdk.Comm.IComm

Public 成员函数

 ComConnection (string portName, int baudRate=9600, Parity parity=Parity.None, int dataBits=8, StopBits stopBits=StopBits.One, Handshake handshake=Handshake.None)
 
override void Close ()
 Closes a connection.
 
override void Open ()
 Opens a connection.
 
override byte[] Read ()
 Read all bytes available.
 
virtual void Read (BinaryWriter binDataIn)
 Reads all bytes available into the stream passed in.
 
virtual void WaitForData (int msTimeOut)
 等待数据可用 BytesAvailable 在当前线程。当前线程休眠直到接收到数据或超时。阻塞调用。 更多...
 
virtual void Write (BinaryReader binReader)
 从输入流写入输出流 更多...
 
override void Write (byte[] dataOut)
 Writes all bytes from the array passed in.
 
virtual void WriteAndWaitForResponse (BinaryWriter binDataIn, BinaryReader binDataOut, int responseStartTimeOut, int responseEndTimeOut, string completetionToken)
 将 binDataOut 流数据写入输出流,并将接收到的数据返回到 binDataIn 流中。返回的数据是接收到的任何数据或达到接收的完成标记。如果没有响应则在返回前等待超时。 更多...
 
virtual byte[] WriteAndWaitForResponse (byte[] dataOut, int responseStartTimeOut, int responseEndTimeOut, string completetionToken)
 将字节数据写入输出流并返回接收到的数据。返回的数据是接收到的任何数据或达到接收的完成标记。在返回前等待响应超时。 更多...
 

静态 Public 成员函数

static ComConnection FromDescriptor (string descriptor)
 

Public 属性

override string Descriptor => $"COM:{_serialPort.PortName}; BAUD:{_serialPort.BaudRate}; PARITY:{_serialPort.Parity}; DATA:{_serialPort.DataBits}; STOP:{_serialPort.StopBits}; HANDSHAKE:{_serialPort.Handshake}"
 

静态 Public 属性

static string PortName
 

属性

int BaudRate [get]
 BaudRate
 
override int BytesAvailable [get]
 
override bool Connected [get]
 
int DataBits [get]
 DataBits
 
Handshake Handshake [get]
 Handshake
 
Parity Parity [get]
 Parity
 
string PortName [get]
 
StopBits StopBits [get]
 StopBits
 

详细描述

实现串行通信并扩展 AComm 类的类。

示例

using System;
using System.IO;
using System.Text;
using UniPRT.Sdk.Comm; // imports SDK namespace
namespace Snippets
{
class MyComm
{
public static void MainComm(string[] args)
{
SendPrintFile(); // send file over BT Classic
SendPrintString(); // send print data over BT Classic
}
public static void SendPrintFile() // send file over usb
{
string fileName = @"C:\testFiles\Hello.pgl";
ComConnection commConnection = new ComConnection("COM5");
try
{
commConnection.Open();
if (File.Exists(fileName))
{
using (BinaryReader binReader = new BinaryReader(File.Open(fileName, FileMode.Open)))
{
Console.WriteLine($"Sending \"{fileName}\" to printer");
commConnection.Write(binReader);
}
}
else
{
Console.WriteLine($"File \"{fileName}\" not found");
}
}
catch (Exception e)
{
Console.WriteLine($"Exception Msg: {e.Message}");
}
finally
{
commConnection.Close();
}
}
public static void SendPrintString() // send print data over BT Classic
{
string dataToPrint =
@"~CREATE;C39;72
SCALE;DOT
PAGE;30;40
ALPHA
C10;1;33;0;0;@HELLO@
C16;54;37;0;0;@*World*@
STOP
BARCODE
C128C;XRD3:3:6:6:9:9:12:12;H6;10;32
@World@
STOP
END
~EXECUTE;C39
~NORMAL
";
ComConnection commConnection = new ComConnection("COM5");
try
{
commConnection.Open();
if (commConnection.Connected)
{
//byte[] outBytes = Encoding.UTF8.GetBytes(dataToPrint);
byte[] outBytes = Encoding.ASCII.GetBytes(dataToPrint);
commConnection.Write(outBytes);
}
else
{
Console.WriteLine($"Not connected to printer");
}
}
catch (Exception e)
{
Console.WriteLine($"Exception Msg: {e.Message}");
}
finally
{
commConnection.Close();
}
}
}
}

成员函数说明

◆ WaitForData()

virtual void UniPRT.Sdk.Comm.AComm.WaitForData ( int  msTimeOut)
virtualinherited

等待数据可用 BytesAvailable 在当前线程。当前线程休眠直到接收到数据或超时。阻塞调用。

参数
[in]msTimeOut如果未接收到数据则在返回前的毫秒超时时间。

实现了 UniPRT.Sdk.Comm.IComm.

◆ Write()

virtual void UniPRT.Sdk.Comm.AComm.Write ( BinaryReader  binReader)
virtualinherited

从输入流写入输出流

参数
[in]binReader要发送的源数据

实现了 UniPRT.Sdk.Comm.IComm.

◆ WriteAndWaitForResponse() [1/2]

virtual void UniPRT.Sdk.Comm.AComm.WriteAndWaitForResponse ( BinaryWriter  binDataIn,
BinaryReader  binDataOut,
int  responseStartTimeOut,
int  responseEndTimeOut,
string  completetionToken 
)
virtualinherited

将 binDataOut 流数据写入输出流,并将接收到的数据返回到 binDataIn 流中。返回的数据是接收到的任何数据或达到接收的完成标记。如果没有响应则在返回前等待超时。

参数
[out]binDataIn目标流以存储从连接接收到的响应。
[in]binDataOut
要写入连接的源流数据。
[in]responseStartTimeOut等待接收到第一个数据的超时时间(毫秒)。第一个字节的时间。
[in]responseEndTimeOut没有接收到新数据的超时时间(毫秒)。最后一个字节后的时间。
[in]completetionToken指示预期响应结束的字符串标记。如果只是想等待写入数据后的响应,可以是空字符串。

实现了 UniPRT.Sdk.Comm.IComm.

◆ WriteAndWaitForResponse() [2/2]

virtual byte [] UniPRT.Sdk.Comm.AComm.WriteAndWaitForResponse ( byte[]  dataOut,
int  responseStartTimeOut,
int  responseEndTimeOut,
string  completetionToken 
)
virtualinherited

将字节数据写入输出流并返回接收到的数据。返回的数据是接收到的任何数据或达到接收的完成标记。在返回前等待响应超时。

返回值
byte[]从连接接收到的字节数组。 返回的数据是接收到的任何数据或达到完成标记时的数据。
参数
[in]dataOut
要写入连接的源字节数组。
[in]responseStartTimeOut等待接收到第一个数据的超时时间(毫秒)。第一个字节的时间。
[in]responseEndTimeOut没有接收到新数据的超时时间(毫秒)。最后一个字节后的时间。
[in]completetionToken指示预期响应结束的字符串标记。如果只是想等待写入数据后的响应,可以是空字符串。

实现了 UniPRT.Sdk.Comm.IComm.

UniPRT
提供对不同通信接口/端口的支持
Definition: Communication.cs:9
UniPRT.Sdk.Comm
Definition: Communication.cs:9
UniPRT.Sdk
Definition: Communication.cs:9