@iotize/tap
Version:
IoTize Device client for Javascript
55 lines (54 loc) • 1.89 kB
TypeScript
import { BodyDecoder, BodyEncoder } from '@iotize/tap/client/api';
export interface NumberDecoderOptions {
signed: boolean;
/**
* Size of number if bits
*/
sizeOf: 8 | 16 | 32;
leastSignificantBitFirst: boolean;
}
export interface Newable<T> {
new (...args: any[]): T;
}
export declare class NumberConverter implements BodyEncoder<number>, BodyDecoder<number> {
options: NumberDecoderOptions;
constructor(options: NumberDecoderOptions);
/**
* Number as unsigned 8 bits converter
* @param lsb true for least significant bit first
*/
static uint8(lsb?: boolean): NumberConverter;
/**
* Number as unsigned 16 bits converter
* @param lsb true for least significant bit first
*/
static uint16(lsb?: boolean): NumberConverter;
/**
* Number as unsigned 32 bits converter
* @param lsb true for least significant bit first
*/
static uint32(lsb?: boolean): NumberConverter;
/**
* Number as signed 8 bits converter
* @param lsb true for least significant bit first
*/
static int8(lsb?: boolean): NumberConverter;
/**
* Number as signed 16 bits converter
* @param lsb true for least significant bit first
*/
static int16(lsb?: boolean): NumberConverter;
/**
* Number as signed 32 bits converter
* @param lsb true for least significant bit first
*/
static int32(lsb?: boolean): NumberConverter;
decode(body: Uint8Array): number;
encode(value: number): Uint8Array;
static toOpaqueMsb(input: number, sizeOf: 8 | 16 | 32 | number): Uint8Array;
static fromOpaqueMsb(data: Uint8Array, sizeOf?: number): number;
/**
* @param size size in bytes
*/
static fromBytes(data: Uint8Array, size: number, signed: boolean, lsb: boolean): number;
}