UniPRT SDK  v2.0.0.3
UniPRT.Sdk.Comm.ComConnection Class Reference

Class that implements serial communication and extends the AComm class. More...

Inheritance diagram for UniPRT.Sdk.Comm.ComConnection:
UniPRT.Sdk.Comm.AComm UniPRT.Sdk.Comm.IComm

Public Member Functions

 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)
 Waits until data available BytesAvailable in current thread. Current thread sleeps until data received or timeout reached. Blocking call.
More...
 
virtual void Write (BinaryReader binReader)
 Write from input stream to output stream
More...
 
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)
 Write binDataOut stream data to output stream and return data received in binDataIn stream. Data returned is any data received or up to completion token if received. Wait for response timeout before returning. More...
 
virtual byte[] WriteAndWaitForResponse (byte[] dataOut, int responseStartTimeOut, int responseEndTimeOut, string completetionToken)
 Write byte data to output stream and return data received. Data returned is any data received or up to completion token if received. Wait for response timeout before returning. More...
 

Static Public Member Functions

static ComConnection FromDescriptor (string descriptor)
 

Public Attributes

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

Static Public Attributes

static string PortName
 

Properties

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.
 

Detailed Description

Class that implements serial communication and extends the AComm class.

Examples

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();
}
}
}
}

Member Function Documentation

◆ WaitForData()

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

Waits until data available BytesAvailable in current thread. Current thread sleeps until data received or timeout reached. Blocking call.

Parameters
[in]msTimeOutMillisecond timeout before return if no data received.

Implements UniPRT.Sdk.Comm.IComm.

◆ Write()

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

Write from input stream to output stream

Parameters
[in]binReaderSource data to send

Implements 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

Write binDataOut stream data to output stream and return data received in binDataIn stream. Data returned is any data received or up to completion token if received. Wait for response timeout before returning.

Parameters
[out]binDataInDestination stream to store response received from connection.
[in]binDataOut
Source stream data to write to connection.
[in]responseStartTimeOutTimeout, milliseconds, to wait for first data to be received. Time to first byte.
[in]responseEndTimeOutTimeout, milliseconds, of no new data received. Time after last byte.
[in]completetionTokenString token denoting the end of the response expected. This can be empty string if simply want to wait for response after writing data to connection.

Implements UniPRT.Sdk.Comm.IComm.

◆ WriteAndWaitForResponse() [2/2]

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

Write byte data to output stream and return data received. Data returned is any data received or up to completion token if received. Wait for response timeout before returning.

Return values
byte[]Array of bytes received from connection.
Data returned is any data received or up to completetionToken if token received
Parameters
[in]dataOut
Source byte array to write to connection.
[in]responseStartTimeOutTimeout, milliseconds, to wait for first data to be received. Time to first byte.
[in]responseEndTimeOutTimeout, milliseconds, of no new data received. Time after last byte.
[in]completetionTokenString token denoting the end of the response expected. This can be empty string if simply want to wait for response after writing data to connection.

Implements UniPRT.Sdk.Comm.IComm.

UniPRT
Provide support for different communication interfaces/ports.
Definition: Communication.cs:9
UniPRT.Sdk.Comm
Definition: Communication.cs:9
UniPRT.Sdk
Definition: Communication.cs:9