UNPKG

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
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; };