signalk-server
Version:
An implementation of a [Signal K](http://signalk.org) server for boats.
59 lines • 2.77 kB
TypeScript
/**
* 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