If you implement a server device or simulator, you can use IParamsServer to handle parameter requests.
First, you need to register the params service when building server device:
var serverDevice = ServerDevice.Create(
new MavlinkIdentity(config.SystemId, config.ComponentId),
core,
builder =>
{
// register some other services...
builder.RegisterParams();
});
After building the device, you can get the service and handle parameter requests:
var paramsServer = serverDevice.GetParams();
// Subscribe to parameter read requests
using var readSubscription = paramsServer.OnParamRequestRead.Subscribe(request =>
{
Console.WriteLine($"Parameter read requested: {request.Payload.ParamId}");
// Handle the request...
});
// Subscribe to parameter list requests
using var listSubscription = paramsServer.OnParamRequestList.Subscribe(request =>
{
Console.WriteLine("Parameter list requested");
// Send all parameters...
});
// Subscribe to parameter set requests
using var setSubscription = paramsServer.OnParamSet.Subscribe(packet =>
{
Console.WriteLine($"Parameter set: {packet.Payload.ParamId} = {packet.Payload.ParamValue}");
// Update parameter and send response...
});