ota-hub-reactjs
Version:
ReactJS tools for building web apps to flash MCU devices such as esp32, brought to you by OTA Hub.
32 lines (31 loc) • 1.99 kB
TypeScript
import { AddConnectionProps, DeviceConnectionState, MultiDeviceWhisperer } from "../base/device-whisperer.js";
export type TopicHandlerContext<AppLayer extends DeviceConnectionState> = {
base: ReturnType<typeof MultiDeviceWhisperer<AppLayer>>;
uuid: string;
};
export type TopicHandlerMap<AppLayer extends DeviceConnectionState, Topic extends string | number, Message = any> = {
[K in Topic]?: (message: Message, context: TopicHandlerContext<AppLayer>) => void;
};
export type ProtobufDeviceWhispererProps<AppLayer extends DeviceConnectionState, Topic extends string | number, MessageRX = any, MessageTX = any> = {
transportLayer: ReturnType<typeof MultiDeviceWhisperer<AppLayer>>;
encodeRX: (message: MessageTX) => Uint8Array;
decodeTX: (bytes: Uint8Array) => MessageRX;
messageTypeField: keyof MessageRX;
rxTopicHandlerMap: TopicHandlerMap<AppLayer, Topic, MessageRX>;
HEADER?: Uint8Array;
expectLength?: boolean;
};
export declare function ProtobufMultiDeviceWhisperer<AppLayer extends DeviceConnectionState, Topic extends string | number, MessageRX = any, MessageTX = any>({ transportLayer, encodeRX, decodeTX, messageTypeField, rxTopicHandlerMap, HEADER, }: ProtobufDeviceWhispererProps<AppLayer, Topic, MessageRX, MessageTX>): {
addConnection: ({ uuid, propCreator }: AddConnectionProps<AppLayer>) => Promise<string>;
sendProtobuf: (uuid: string, message: MessageTX) => void;
protoBufOnReceiveHandler: (uuid: string, data: string | Uint8Array) => void;
connections: AppLayer[];
connectionsRef: import("react").RefObject<AppLayer[]>;
removeConnection: (uuid: string) => void;
connect: (_uuid: string) => void;
disconnect: (_uuid: string) => void;
updateConnection: (uuid: string, updater: (c: AppLayer) => AppLayer) => void;
reconnectAll: () => void;
updateConnectionName: (uuid: string, name: string) => void;
appendLog: (uuid: string, log: import("../base/device-whisperer.js").LogLine) => void;
};