UNPKG

signalk-server

Version:

An implementation of a [Signal K](http://signalk.org) server for boats.

59 lines 2.77 kB
/** * WASM Radar Provider Support * * Handles radar provider registration and handler invocation for WASM plugins. * Integrates with Signal K's Radar API at /signalk/v2/api/vessels/self/radars */ import { WasmRadarProvider, WasmPluginInstance } from '../types'; /** * Registered radar providers from WASM plugins * Key: pluginId */ export declare const wasmRadarProviders: Map<string, WasmRadarProvider>; /** * Call a WASM radar handler function * Handles both AssemblyScript and Rust plugins with Asyncify support for async operations */ export declare function callWasmRadarHandler(pluginInstance: WasmPluginInstance, handlerName: string, requestJson: string): Promise<string | null>; /** * Update radar provider references with a newly loaded plugin instance */ export declare function updateRadarProviderInstance(pluginId: string, pluginInstance: WasmPluginInstance): void; /** * Clean up radar provider registrations for a plugin * @param pluginId The plugin ID * @param app The Signal K app (optional, if provided will also unregister from RadarApi) */ export declare function cleanupRadarProviders(pluginId: string, app?: any): void; /** * Create the sk_register_radar_provider host binding * * WASM plugins call this to register as a radar provider. * The plugin must export handler functions: * - radar_get_radars() -> JSON array of radar IDs * - radar_get_radar_info(requestJson) -> RadarInfo JSON * - radar_set_power(requestJson) -> boolean success * - radar_set_range(requestJson) -> boolean success * - radar_set_gain(requestJson) -> boolean success * - radar_set_controls(requestJson) -> boolean success */ export declare function createRadarProviderBinding(pluginId: string, capabilities: { radarProvider?: boolean; }, app: any, readUtf8String: (ptr: number, len: number) => string): (namePtr: number, nameLen: number) => number; /** * Create the sk_radar_emit_spokes host binding * * Convenience wrapper for radar plugins to emit binary spoke data. * Maps to sk_emit_binary_stream with "radars/{radarId}" stream ID format. * * @param pluginId - Plugin identifier * @param capabilities - Plugin capabilities * @param app - SignalK application instance * @param readUtf8String - Function to read UTF-8 strings from WASM memory * @param readBinaryData - Function to read binary data from WASM memory * @returns FFI binding function */ export declare function createRadarEmitSpokesBinding(pluginId: string, capabilities: { radarProvider?: boolean; }, app: any, readUtf8String: (ptr: number, len: number) => string, readBinaryData: (ptr: number, len: number) => Buffer): (radarIdPtr: number, radarIdLen: number, spokeDataPtr: number, spokeDataLen: number) => number; //# sourceMappingURL=radar-provider.d.ts.map