@iotile/iotile-device
Version:
A typescript library for interfacing with IOTile BLE devices
46 lines (45 loc) • 1.46 kB
TypeScript
import * as Errors from "../common/error-space";
import * as IOTileTypes from "../common/iotile-types";
export interface RPCData {
rpcID: number;
address: number;
timeout: number;
internalTimeout: number;
timeoutHandler: number | null;
payload: ArrayBuffer;
headerReceived: boolean;
expectedPayloadLength: number;
success: (value: ArrayBuffer) => void;
failure: (reason: Errors.RPCError) => void;
}
export declare enum RPCError {
OK = 0,
UnexpectedRPCTimeout = 1,
ErrorWritingRPC = 2,
IncorrectReceivedLength = 3,
ResponseReceivedAtInvalidTime = 4,
BluetoothErrorWritingRPC = 5,
StoppedFromPreviousErrors = 6
}
export declare class IOTileRPCInterface {
private channel;
private removeReceiveHeaderHandler;
private removeReceivePayloadHandler;
private rpcQueue;
private processing;
private currentRPC;
stoppedFromErrors: boolean;
lastError: RPCError | null;
constructor();
open(channel: IOTileTypes.BLEChannel): Promise<void>;
rpc(address: number, rpcID: number, payload: ArrayBuffer, timeout?: number): Promise<ArrayBuffer>;
close(): Promise<void>;
private receiveHeader;
/**
* Cleanup after an RPC is finished, removing its timeout handler and restarting the command queue
*/
private finishRPC;
private receivePayload;
private fatalRPCError;
private processOne;
}