import { PARAMETER_TYPE } from 'app/nodes/types'; export interface IConfig { name: string; service: string; characteristic: string; parameters: IParam[]; } export interface IParamParent { title: string; service: string; characteristic: string; } export interface IParamBase { name: string; offset: number; bits: number; /** * Available types: * - range * - dropdown */ type?: PARAMETER_TYPE; /** * if type is dropdown: key-value pairs to populate dropdown */ values?: {key: any, value: number}[]; } export interface IParam extends IParamBase, IParamParent { identifier: IParamParent; } export interface IDataService { name: string; service: string; littleEndian: boolean; bytesPerSample: number; bytesPerPackage: number; data: IData[]; } export interface IDataBase { name: string; // notify: boolean; /** * The UUID of the characteristic */ characteristic: string; /** * Transform function to execute on all incoming data */ read: (value: T) => U; } export interface IData extends IDataBase { title: string; service: string; littleEndian: boolean; bytesPerSample: number; bytesPerPackage: number; } /* grouping layout interface */ export interface IGroup { title: string; sections: IGroupSection[]; } export interface IGroupSection { title: string; toggle?: IData; items?: IParam[]; }