obniz
Version:
obniz sdk for javascript
247 lines (246 loc) • 10.4 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/**
* @packageDocumentation
* @ignore
*/
import EventEmitter from 'eventemitter3';
import { ObnizBLEHci } from '../hci';
import { BleDeviceAddress, BleDeviceAddressType, BleExtendedAdvertisingEnable, Handle } from '../bleTypes';
declare type HciEventTypes = 'leAdvertisingReport' | 'leExtendedAdvertisingReport' | 'leConnComplete' | 'stateChange' | 'leConnUpdateComplete' | 'disconnComplete' | 'encryptChange' | 'aclDataPkt' | 'updatePhy';
export declare type HciState = 'poweredOn' | 'poweredOff';
export declare type HciPhy = 'noPhy' | '1m' | '2m' | 'coded' | 'error';
/**
* @ignore
*/
export declare class Hci extends EventEmitter<HciEventTypes> {
static STATUS_MAPPER: any;
_obnizHci: ObnizBLEHci;
_handleBuffers: any;
_handleAclsInProgress: any;
_aclOutQueue: any;
addressType: any;
address: any;
private _aclMtu;
private _aclMaxInProgress;
private _socket;
private _state;
private _aclStreamObservers;
private _extendedAdvertiseJoinData;
constructor(obnizHci: any);
/**
* @ignore
* @private
*/
_reset(): void;
/**
* @ignore
* @private
*/
debugHandler: any;
initWait(): Promise<void>;
setEventMaskCommand(mask: string): void;
resetWait(): Promise<void>;
resetForNrf52832Wait(): Promise<void>;
resetForOldObnizjsWait(): Promise<void>;
resetForEsp32Wait(): Promise<void>;
resetCommandWait(): Promise<{
eventType: number;
subEventType: number;
ncmd: number;
cmd: number;
status: number;
result: Buffer;
}>;
setRandomDeviceAddressWait(): Promise<void>;
leEncryptWait(key: Buffer, plainTextData: Buffer): Promise<{
encryptedData: Buffer;
}>;
leRandWait(): Promise<{
randomNumber: Buffer;
}>;
leSetRandomAddressWait(randomAddress: Buffer): Promise<void>;
writeDefaultLinkPolicyCommandWait(mode: ('enableRoleSwitch' | 'enableHoldMode' | 'enableSniffMode')[]): Promise<void>;
resetBuffers(): void;
readLocalVersionCommandWait(): Promise<{
hciVer: number;
hciRev: number;
lmpVer: number;
manufacturer: number;
lmpSubVer: number;
}>;
readLocalNameCommandWait(): Promise<string>;
writePageTimeoutCommandWait(pageTimeout?: number): Promise<void>;
writeClassOfDeviceCommandWait(classOfDevice: number): Promise<void>;
writeInquiryScanTypeCommandWait(scanType: 'standardScan' | 'interlacedScan'): Promise<void>;
writeInquiryModeCommandWait(inquiryMode: 'standardInquiryResultEventFormat' | 'inquiryResultFormatWithRSSI' | 'inquiryResultWithRSSIFormatOrExtendedInquiryResultFormat'): Promise<void>;
writePageScanTypeCommandWait(pageScanType: 'standardScan' | 'interlacedScan'): Promise<void>;
writeSimplePairingModeCommandWait(simplePairingMode: 'disabled' | 'enabled'): Promise<void>;
setEventMaskPage2(mask: string): void;
readLocalSupportedCommandWait(): Promise<Buffer>;
readLocalSupportedFeaturesCommandWait(): Promise<Buffer>;
readLocalExtendedFeaturesCommandWait(page: number): Promise<{
pageNumber: number;
maximumPageNumber: number;
extendedLmpFeatures: Buffer;
}>;
leClearWhiteListCommandWait(): Promise<Buffer>;
leReadSupportedStatesCommandWait(): Promise<Buffer>;
leReadSuggestedDefaultDataLengthCommandWait(): Promise<{
suggestedMaxTxOctets: number;
suggestedMaxTxTime: number;
}>;
leWriteSuggestedDefaultDataLengthCommandWait(suggestedMaxTxOctets: number, suggestedMaxTxTime: number): Promise<void>;
leClearResolvingListCommandWait(): Promise<void>;
leReadResolvingListSizeCommandWait(): Promise<number>;
leSetResolvablePrivateAddressTimeoutCommandWait(rpaTimeout: number): Promise<void>;
leReadMaximumDataLengthCommandWait(): Promise<{
supportedMaxTxOctets: number;
supportedMaxTxTime: number;
supportedMaxRxOctets: number;
supportedMaxRxTime: number;
}>;
leReadLocalSupportedFeaturesCommandWait(): Promise<Buffer>;
leReadPhyCommandWait(connectionHandle: number): Promise<{
status: number;
connectionHandle: number;
txPhy: number;
rxPhy: number;
}>;
leSetPhyCommandWait(connectionHandle: number, allPhys: number, txPhys: number, rxPhys: number, options: number): Promise<void>;
setExtendedAdvertisingParametersWait(handle: number, eventProperties: number, primaryAdvertisingPhy: number, secondaryAdvertisingPhy: number, txPower: number): Promise<{
status: number;
txPower: number;
}>;
private extendedAdvertiseOperation;
setExtendedAdvertisingDataWait(handle: number, data: Buffer): Promise<number>;
setExtendedAdvertisingScanResponseDataWait(handle: number, data: Buffer): Promise<number>;
setExtendedAdvertisingEnableWait(enabled: boolean, enableList: BleExtendedAdvertisingEnable[]): Promise<number>;
leReadMaximumAdvertisingDataLengthWait(): Promise<number>;
leClearAdvertisingSetWait(): Promise<number>;
setExtendedScanParametersWait(isActiveScan: boolean, usePhy1m?: boolean, usePhyCoded?: boolean): Promise<number>;
setExtendedScanEnabledWait(enabled: boolean, filterDuplicates: boolean): Promise<number>;
createLeExtendedConnWait(address: BleDeviceAddress, addressType: BleDeviceAddressType, timeout: number | undefined, onConnectCallback: any, pyh1m?: boolean, pyh2m?: boolean, pyhCoded?: boolean): Promise<{
status: any;
handle: number;
role: number;
addressType: BleDeviceAddressType;
address: string;
interval: number;
latency: number;
supervisionTimeout: number;
masterClockAccuracy: number;
}>;
leSetDefaultPhyCommandWait(allPhys: number, txPhys: number, rxPhys: number): Promise<number>;
leReadAdvertisingPhysicalChannelTxPowerCommandWait(): Promise<number>;
leReadWhiteListSizeWait(): Promise<number>;
readBdAddrWait(): Promise<any>;
setLeEventMaskCommand(mask: string): void;
readLeHostSupportedWait(): Promise<{
eventType: number;
subEventType: number;
ncmd: number;
cmd: number;
status: number;
result: Buffer;
}>;
writeLeHostSupportedCommand(): void;
setScanParametersWait(isActiveScan: boolean): Promise<number>;
setScanEnabledWait(enabled: boolean, filterDuplicates: boolean): Promise<number>;
createLeConnWait(address: BleDeviceAddress, addressType: BleDeviceAddressType, timeout: number | undefined, onConnectCallback: any, parameterType?: 'obnizjs<3_18_0' | 'esp32'): Promise<{
status: any;
handle: number;
role: number;
addressType: BleDeviceAddressType;
address: string;
interval: number;
latency: number;
supervisionTimeout: number;
masterClockAccuracy: number;
}>;
createLeConnCancelWait(): Promise<void>;
connUpdateLeWait(handle: Handle, minInterval: number, maxInterval: number, latency: number, supervisionTimeout: number): Promise<{
status: any;
handle: number;
interval: number;
latency: any;
supervisionTimeout: number;
}>;
processLeConnUpdateComplete(status: any, data: any): {
status: any;
handle: number;
interval: number;
latency: any;
supervisionTimeout: number;
};
startLeEncryptionWait(handle: Handle, random: Buffer, diversifier: Buffer, key: Buffer): Promise<number | "refresh">;
disconnect(handle: Handle, reason?: number): void;
readRssiWait(handle: Handle): Promise<number>;
setAdvertisingParametersWait(): Promise<number>;
setAdvertisingDataWait(data: any): Promise<number>;
setScanResponseDataWait(data: any): Promise<number>;
setAdvertiseEnableWait(enabled: any): Promise<number>;
leReadBufferSizeWait(): Promise<{
aclMtu: number;
aclMaxInProgress: number;
} | null | undefined>;
readBufferSizeWait(): Promise<{
aclMtu: number;
aclMaxInProgress: number;
} | null>;
queueAclDataPkt(handle: Handle, cid: any, data: any): void;
pushAclOutQueue(): void;
writeOneAclDataPkt(): void;
writeAclDataPkt(handle: Handle, cid: any, data: any): void;
longTermKeyRequestNegativeReplyWait(handle: Handle): Promise<void>;
processLeMetaEvent(eventType: any, status: any, data: Buffer): void;
private parseConnectionCompleteEventData;
private parseLeConnectionCompleteEventData;
processLeConnComplete(status: any, data: ReturnType<Hci['parseConnectionCompleteEventData']> | ReturnType<Hci['parseLeConnectionCompleteEventData']>, onConnectCallback: any): {
status: any;
handle: number;
role: number;
addressType: BleDeviceAddressType;
address: string;
interval: number;
latency: number;
supervisionTimeout: number;
masterClockAccuracy: number;
};
private phyToStr;
processLeExtendedAdvertisingReport(count: number, data: Buffer): void;
processLeAdvertisingReport(count: number, data: Buffer): void;
processCmdStatusEvent(cmd: any, status: any): void;
processLeReadBufferSizeWait(result: any): Promise<{
aclMtu: number;
aclMaxInProgress: number;
} | null | undefined>;
stateChange(state: HciState): void;
readAclStreamWait(handle: Handle, cid: number, firstData: number, timeout?: number): Promise<Buffer>;
protected readLeMetaEventWait(eventType: number, options: {
timeout?: number | null;
waitingFor: string;
onTimeout?: () => Promise<void>;
}): Promise<{
type: number;
status: number;
data: Buffer;
}>;
protected createLeMetaEventFilter(eventType: number): number[];
protected readCmdCompleteEventWait(requestCmd: number, additionalResultFilter?: number[]): Promise<{
eventType: number;
subEventType: number;
ncmd: number;
cmd: number;
status: number;
result: Buffer;
}>;
protected createCmdCompleteEventFilter(cmd: number): number[];
private debug;
private onHciAclData;
private onHciEventData;
private onSocketData;
private writeNoParamCommandWait;
private writeSingleParamCommandWait;
}
export {};