UniPRT SDK  v2.0.0.1
com.UniPRT.Sdk.Comm.BLEConnection 類別 參考文件

實作 BLE 特定通訊並擴展 AComm 類別的類別。 更多...

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

公開方法(Public Methods)

 BLEConnection (Context context, String address)
 根據 descriptor 字串初始化新實例。 更多...
 
int BytesAvailable ()
 
String Descriptor ()
 驗證 descriptorHint 中的描述字串,此字串可能包含或不包含 v_id 和 p_id。傳回 long。 更多...
 
boolean Connected ()
 
void Close ()
 
void CloseWithTimeout (int timeoutMs)
 
void Open ()
 
byte[] Read ()
 
void Write (byte[] dataOut)
 
- 公開方法(Public Methods) 繼承自 com.UniPRT.Sdk.Comm.AComm
void Read (OutputStream binDataIn) throws IOException
 
void WaitForData (int msTimeOut)
 等待當前執行緒有可用的資料 BytesAvailable。當前執行緒會休眠直到收到資料或超時為止。此為阻塞呼叫。 更多...
 
void Write (InputStream binReader) throws IOException
 從輸入流寫入輸出流。 更多...
 
void WriteAndWaitForResponse (OutputStream binDataIn, InputStream binDataOut, int responseStartTimeOut, int responseEndTimeOut, String completetionToken) throws IOException
 將 binDataOut 流資料寫入輸出流,並將接收到的資料返回到 binDataIn 流中。返回的資料是收到的資料或收到的完成標記。等待回應超時後返回。 更多...
 
byte[] WriteAndWaitForResponse (byte[] dataOut, int responseStartTimeOut, int responseEndTimeOut, String completetionToken) throws IOException
 將位元組資料寫入輸出流並返回接收到的資料。返回的資料是接收到的任何資料或收到的完成標記。等待回應超時後返回。 更多...
 

靜態公開方法(Static Public Methods)

static CompletableFuture< List< BluetoothDevice > > scanDevicesForDuration (int seconds)
 

私有方法(Private Methods)

CompletableFuture< Void > waitForDisconnectedAsync (int timeoutMs)
 
CompletableFuture< Void > waitForConnectedAsync (int timeoutMs)
 
void waitAck () throws InterruptedException
 
void notifyAck ()
 

私有屬性

BluetoothDevice device
 
BluetoothGatt mBluetoothGatt
 
BluetoothGattCharacteristic rxCharacteristic
 
BluetoothGattCharacteristic txCharacteristic
 
String deviceAddress = ""
 
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()
 
int ble_mtu = 512
 
boolean isConnected = false
 
final Object ackLock = new Object()
 
boolean ackReceived = false
 
final Context context
 
final Semaphore semaphore = new Semaphore(1)
 
final BluetoothGattCallback mGattCallback
 

靜態私有屬性

static final UUID SERVICE_UUID = UUID.fromString("0000fff0-0000-1000-8000-00805f9b34fb")
 
static final UUID TX_UUID = UUID.fromString("0000fff1-0000-1000-8000-00805f9b34fb")
 
static final UUID RX_UUID = UUID.fromString("0000fff2-0000-1000-8000-00805f9b34fb")
 
static BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
 

詳細描述

實作 BLE 特定通訊並擴展 AComm 類別的類別。

範例

package com.test.UniPRTSdk;
import java.io.*;
public class commBTClassicSnippet {
public static void test() {
sendPrintFile(); // send file over default printer data port
sendPrintString(); // send print data over default printer data port
}
public static void sendPrintFile() {
String fileName = "C:\\testFiles\\Hello.pgl";
BLEConnection comm = BLEConnection(this, "DC:0D:30:23:3A:6C");
try {
comm.Open();
if (new File(fileName).exists()) {
try (InputStream binReader = new BufferedInputStream(new FileInputStream(fileName))) {
System.out.println("Sending \"" + fileName + "\" to printer");
byte[] buffer = new byte[1024];
while ((binReader.read(buffer)) != -1) {
comm.Write(buffer);
}
}
} else {
System.out.println("File \"" + fileName + "\" not found");
}
} catch (Exception e) {
System.out.println("Exception Msg: " + e.getMessage());
} finally {
comm.Close();
}
}
public static void sendPrintString() {
String dataToPrint =
"~CREATE;C39;72\n" +
"SCALE;DOT\n" +
"PAGE;30;40\n" +
"ALPHA\n" +
"C10;1;33;0;0;@HELLO@\n" +
"C16;54;37;0;0;@*World*@\n" +
"STOP\n" +
"BARCODE\n" +
"C128C;XRD3:3:6:6:9:9:12:12;H6;10;32\n" +
"@World@\n" +
"STOP\n" +
"END\n" +
"~EXECUTE;C39\n" +
"~NORMAL\n";
BLEConnection comm = BLEConnection(this, "DC:0D:30:23:3A:6C");
try {
comm.Open();
if (comm.Connected()) {
byte[] outBytes = dataToPrint.getBytes("US-ASCII");
comm.Write(outBytes);
} else {
System.out.println("Not connected to printer");
}
} catch (Exception e) {
System.out.println("Exception Msg: " + e.getMessage());
} finally {
comm.Close();
}
}
}

建構子與解構子說明文件

◆ BLEConnection()

com.UniPRT.Sdk.Comm.BLEConnection.BLEConnection ( Context  context,
String  address 
)

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

參數
descriptor可接受格式:
  • "BT:MAC Address:<_bt_mac>"
    • _bt_mac 為 16 進位字串,例如:MAC Address:"00:80:A3:12:34:56"

參考 com.UniPRT.Sdk.Comm.BLEConnection.context.

函式成員說明文件

◆ BytesAvailable()

int com.UniPRT.Sdk.Comm.BLEConnection.BytesAvailable ( )

Get the number of bytes available to read.

傳回值
Number of bytes available to read.

實作 com.UniPRT.Sdk.Comm.IComm.

參考 com.UniPRT.Sdk.Comm.BLEConnection.byteArrayOutputStream.

◆ Close()

void com.UniPRT.Sdk.Comm.BLEConnection.Close ( )

◆ CloseWithTimeout()

◆ Connected()

boolean com.UniPRT.Sdk.Comm.BLEConnection.Connected ( )

Check if connection is established.

傳回值
true if connection is established, otherwise false.

實作 com.UniPRT.Sdk.Comm.IComm.

參考 com.UniPRT.Sdk.Comm.BLEConnection.isConnected.

被參考於 com.UniPRT.Sdk.Comm.BLEConnection.Open().

◆ Descriptor()

String com.UniPRT.Sdk.Comm.BLEConnection.Descriptor ( )

驗證 descriptorHint 中的描述字串,此字串可能包含或不包含 v_id 和 p_id。傳回 long。

descriptorHint 可接受的格式:

  • "BLE:MAC Address:<_bt_mac>"
    • _bt_mac 為十六進位 字串,例如:MAC Address:0080A3123456

實作 com.UniPRT.Sdk.Comm.IComm.

參考 com.UniPRT.Sdk.Comm.BLEConnection.deviceAddress.

◆ notifyAck()

void com.UniPRT.Sdk.Comm.BLEConnection.notifyAck ( )
private

◆ Open()

◆ Read()

byte [] com.UniPRT.Sdk.Comm.BLEConnection.Read ( )

◆ scanDevicesForDuration()

static CompletableFuture<List<BluetoothDevice> > com.UniPRT.Sdk.Comm.BLEConnection.scanDevicesForDuration ( int  seconds)
static

◆ waitAck()

void com.UniPRT.Sdk.Comm.BLEConnection.waitAck ( ) throws InterruptedException
private

◆ waitForConnectedAsync()

CompletableFuture<Void> com.UniPRT.Sdk.Comm.BLEConnection.waitForConnectedAsync ( int  timeoutMs)
private

◆ waitForDisconnectedAsync()

CompletableFuture<Void> com.UniPRT.Sdk.Comm.BLEConnection.waitForDisconnectedAsync ( int  timeoutMs)
private

◆ Write()

void com.UniPRT.Sdk.Comm.BLEConnection.Write ( byte[]  dataOut)

資料成員說明文件

◆ ackLock

final Object com.UniPRT.Sdk.Comm.BLEConnection.ackLock = new Object()
private

◆ ackReceived

boolean com.UniPRT.Sdk.Comm.BLEConnection.ackReceived = false
private

◆ ble_mtu

int com.UniPRT.Sdk.Comm.BLEConnection.ble_mtu = 512
private

◆ byteArrayOutputStream

ByteArrayOutputStream com.UniPRT.Sdk.Comm.BLEConnection.byteArrayOutputStream = new ByteArrayOutputStream()
private

◆ context

final Context com.UniPRT.Sdk.Comm.BLEConnection.context
private

◆ device

BluetoothDevice com.UniPRT.Sdk.Comm.BLEConnection.device
private

◆ deviceAddress

String com.UniPRT.Sdk.Comm.BLEConnection.deviceAddress = ""
private

◆ isConnected

◆ mBluetoothAdapter

BluetoothAdapter com.UniPRT.Sdk.Comm.BLEConnection.mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
staticprivate

◆ mBluetoothGatt

BluetoothGatt com.UniPRT.Sdk.Comm.BLEConnection.mBluetoothGatt
private

◆ mGattCallback

final BluetoothGattCallback com.UniPRT.Sdk.Comm.BLEConnection.mGattCallback
private

◆ RX_UUID

final UUID com.UniPRT.Sdk.Comm.BLEConnection.RX_UUID = UUID.fromString("0000fff2-0000-1000-8000-00805f9b34fb")
staticprivate

◆ rxCharacteristic

BluetoothGattCharacteristic com.UniPRT.Sdk.Comm.BLEConnection.rxCharacteristic
private

◆ semaphore

final Semaphore com.UniPRT.Sdk.Comm.BLEConnection.semaphore = new Semaphore(1)
private

◆ SERVICE_UUID

final UUID com.UniPRT.Sdk.Comm.BLEConnection.SERVICE_UUID = UUID.fromString("0000fff0-0000-1000-8000-00805f9b34fb")
staticprivate

◆ TX_UUID

final UUID com.UniPRT.Sdk.Comm.BLEConnection.TX_UUID = UUID.fromString("0000fff1-0000-1000-8000-00805f9b34fb")
staticprivate

◆ txCharacteristic

BluetoothGattCharacteristic com.UniPRT.Sdk.Comm.BLEConnection.txCharacteristic
private

此類別(class) 文件是由下列檔案中產生:
com.UniPRT.Sdk.Comm
Definition: AComm.java:1
com.UniPRT
com.UniPRT.Sdk.Comm.BTClassicConnection
實作藍牙經典(Bluetooth Classic)通訊的類別,並繼承自 AComm 類別。
Definition: BTClassicConnection.java:36
com.UniPRT.Sdk.Comm.BLEConnection.BLEConnection
BLEConnection(Context context, String address)
根據 descriptor 字串初始化新實例。
Definition: BLEConnection.java:105
com.UniPRT.Sdk
com