public Task SendDebugFloatArray(string name, ushort arrayId, float[] data)
{
if (string.IsNullOrWhiteSpace(name))
throw new ArgumentException("Value cannot be null or whitespace.", nameof(name));
if (name.Length > _maxDebugFloatArrayNameLength)
{
throw new ArgumentException($"Name '{name}' is too long for parameter name (max size {_maxDebugFloatArrayNameLength})", nameof(name));
}
if (data.Length > _maxDebugFloatArrayDataLength)
{
throw new ArgumentException($"Data is too long (max size {_maxDebugFloatArrayDataLength})", nameof(name));
}
var packet = new DebugFloatArrayPacket()
{
ComponenId = _identity.ComponentId,
SystemId = _identity.SystemId,
CompatFlags = 0,
IncompatFlags = 0,
Sequence = _seq.GetNextSequenceNumber(),
Payload =
{
Name = name.ToCharArray(),
TimeUsec = (uint)(DateTime.Now - _bootTime).TotalMilliseconds,
ArrayId = arrayId,
}
};
data.CopyTo(packet.Payload.Data,0);
return _connection.Send(packet, _disposableCancel.Token);
}