UNPKG

@iotile/iotile-device

Version:

A typescript library for interfacing with IOTile BLE devices

46 lines (45 loc) 1.41 kB
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; }