UniPRT SDK  v2.0.0.3
UniPRT.Sdk.Comm.UsbConnection 類別 參考文件

實現USB特定通信並擴展AComm類的類別。 更多...

類別UniPRT.Sdk.Comm.UsbConnection的繼承圖:
UniPRT.Sdk.Comm.AComm UniPRT.Sdk.Comm.IComm

公開方法(Public Methods)

 UsbConnection ()
 根據 vendorIdproductId 初始化新類實例。此實例的目標是與 vendorId 和 productId 匹配的第一個印表機。 更多...
 
 UsbConnection (short vendorId)
 
 UsbConnection (short vendorId, short productId)
 
 UsbConnection (string descriptor)
 根據 descriptor 字符串初始化新類實例。 更多...
 
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)
 將字節數據寫入輸出流並返回接收到的數據。返回的數據是接收到的任何數據或達到接收的完成令牌。在返回前等待回應超時。 更多...
 

靜態公開方法(Static Public Methods)

static List<(short vendorID, short productID)> AvaliableDevices ()
 以 List<(short v_id, short p_id)> 格式返回有效設備的 v_id 和 p_id。 更多...
 
static List< short > DescriptorValidate (string descriptorHint)
 驗證從 descriptorHint 傳入的描述符字串,該字串可能包含或不包含 v_id 和 p_id。返回元組。 更多...
 

公開屬性

override string Descriptor => $"USB:V_ID:{_v_id}; P_ID:{_p_id}"
 返回連接的字符串描述。格式:"USB:V_ID:_v_id; P_ID:_p_id" 例如 "USB:V_ID:4611; P_ID:1234" 更多...
 

靜態公開屬性

static readonly short PTX_USB_VID = 0x14ae
 USB v_id of PRINTRONIX printer (0x14ae)
 
static readonly short TSC_USB_VID = 0x1203
 USB v_id of TSC printer (0x1203)
 

屬性(properties)

override int BytesAvailable [get]
 
override bool Connected [get]
 
short P_ID [get]
 Product ID.
 
short V_ID [get]
 Vendor ID.
 

詳細描述

實現USB特定通信並擴展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 usb
SendPrintString(); // send print data over usb
}
public static void SendPrintFile() // send file over usb
{
var devices = UsbConnection.AvaliableDevices();
if (devices.Count > 0)
{
string fileName = @"C:\testFiles\Hello.pgl";
UsbConnection PtrUsbComm = new UsbConnection(devices[0].vendorID, devices[0].productID);
try
{
PtrUsbComm.Open();
if (File.Exists(fileName))
{
using (BinaryReader binReader = new BinaryReader(File.Open(fileName, FileMode.Open)))
{
Console.WriteLine($"Sending \"{fileName}\" to printer");
PtrUsbComm.Write(binReader);
}
}
else
{
Console.WriteLine($"File \"{fileName}\" not found");
}
}
catch (Exception e)
{
Console.WriteLine($"Exception Msg: {e.Message}");
}
finally
{
PtrUsbComm.Close();
}
}
}
public static void SendPrintString() // send print data over usb
{
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
";
var devices = UsbConnection.AvaliableDevices();
if (devices.Count > 0)
{
UsbConnection PtrUsbComm = new UsbConnection(devices[0].vendorID, devices[0].productID);
try
{
PtrUsbComm.Open();
if (PtrUsbComm.Connected)
{
//byte[] outBytes = Encoding.UTF8.GetBytes(dataToPrint);
byte[] outBytes = Encoding.ASCII.GetBytes(dataToPrint);
PtrUsbComm.Write(outBytes);
}
else
{
Console.WriteLine($"Not connected to printer");
}
}
catch (Exception e)
{
Console.WriteLine($"Exception Msg: {e.Message}");
}
finally
{
PtrUsbComm.Close();
}
}
}
}
}

建構子與解構子說明文件

◆ UsbConnection() [1/2]

UniPRT.Sdk.Comm.UsbConnection.UsbConnection ( string  descriptor)

根據 descriptor 字符串初始化新類實例。

參數
[in]descriptor可接受的格式:
  • USB
  • USB:V_ID:<v_id>
  • USB:V_ID:<v_id>; P_ID:<p_id>
    • <v_id> 和 <p_id> 允許十進制或十六進制

◆ UsbConnection() [2/2]

UniPRT.Sdk.Comm.UsbConnection.UsbConnection ( )

根據 vendorIdproductId 初始化新類實例。此實例的目標是與 vendorId 和 productId 匹配的第一個印表機。

參數
[in]vendorId指定要連接的 TSC 印表機或 PRINTRONIX 印表機。 當此參數省略時,TSC 印表機或 PRINTRONIX 印表機皆為目標
[in]productId指定印表機的 productId。 當此參數省略時,第一個與 vendorId 匹配的印表機為目標

函式成員說明文件

◆ AvaliableDevices()

static List<(short vendorID, short productID)> UniPRT.Sdk.Comm.UsbConnection.AvaliableDevices ( )
static

以 List<(short v_id, short p_id)> 格式返回有效設備的 v_id 和 p_id。

"v_id" 指的是廠商 ID,而 "p_id" 指的是產品 ID。

◆ DescriptorValidate()

static List<short> UniPRT.Sdk.Comm.UsbConnection.DescriptorValidate ( string  descriptorHint)
static

驗證從 descriptorHint 傳入的描述符字串,該字串可能包含或不包含 v_id 和 p_id。返回元組。

descriptorHint 接受的值:

  • 未指定: "USB"
  • 指定 V_ID: "USB:V_ID:4611" 或 "USB:V_ID:0x1203"
  • 指定 V_ID 和 P_ID: "USB:V_ID:4611; P_ID:1234" 或 "USB:V_ID:0x1203; P_ID:0x04D2"

◆ 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.

資料成員說明文件

◆ Descriptor

override string UniPRT.Sdk.Comm.UsbConnection.Descriptor => $"USB:V_ID:{_v_id}; P_ID:{_p_id}"

返回連接的字符串描述。格式:"USB:V_ID:_v_id; P_ID:_p_id" 例如 "USB:V_ID:4611; P_ID:1234"

返回格式:

  • USB:V_ID:<v_id>; P_ID:<p_id>
    • p_id 和 v_id 是 short 數字。例:V_ID:4611; P_ID:1234
UniPRT
提供對不同通訊介面/端口的支援
Definition: Communication.cs:9
UniPRT.Sdk.Comm
Definition: Communication.cs:9
UniPRT.Sdk
Definition: Communication.cs:9
UniPRT.Sdk.Comm.UsbConnection.UsbConnection
UsbConnection()
根據 vendorId 和 productId 初始化新類實例。此實例的目標是與 vendorId 和 productId 匹配的第一個印表機。
Definition: UsbComm.cs:406