コード例 #1
0
 public void Serialize(ref Span <byte> buffer)
 {
     SessionId.Serialize(ref buffer);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, FieldId);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, StartIndex);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Take);
 }
コード例 #2
0
 public static void WriteHeader(ref Span <byte> span, ushort methodInterfaceId, ushort methodMethodId,
                                byte requestId)
 {
     BinSerialize.WriteByte(ref span, requestId);
     BinSerialize.WritePackedUnsignedInteger(ref span, methodInterfaceId);
     BinSerialize.WritePackedUnsignedInteger(ref span, methodMethodId);
 }
コード例 #3
0
        public void Serialize(ref Span <byte> buffer)
        {
            BinSerialize.WritePackedUnsignedInteger(ref buffer, Index);
            BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Type.TypeEnum);
            var typeSize  = Type.GetByteSize();
            var valueSize = int.MaxValue; // if value == null, we wouldn't serialize it

            if (Value != null)
            {
                valueSize = Value.GetByteSize();
            }
            if (Value == null || typeSize + valueSize + 1 > PayloadV2Helper.MaxMessageSize)
            {
                // send only type
                BinSerialize.WriteBool(ref buffer, false);
                Type.Serialize(ref buffer);
            }
            else
            {
                // send type + value
                BinSerialize.WriteBool(ref buffer, true);
                Type.Serialize(ref buffer);
                Value.Serialize(ref buffer);
            }
        }
コード例 #4
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Items.Count);
     foreach (var item in Items)
     {
         Debug.Assert(item != null, nameof(item) + " != null");
         item.Serialize(ref buffer);
     }
 }
コード例 #5
0
ファイル: Pv2EnumParamType.cs プロジェクト: asvol/mavlink.net
 public override void Serialize(ref Span <byte> buffer)
 {
     base.Serialize(ref buffer);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)_list.Count);
     foreach (var t in Items)
     {
         BinSerialize.WriteString(ref buffer, t);
     }
 }
コード例 #6
0
 public void Serialize(ref Span <byte> buffer)
 {
     SessionId.Serialize(ref buffer);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Counter);
     BinSerialize.WriteByte(ref buffer, (byte)Flags);
     BinSerialize.WriteByte(ref buffer, (byte)Groups.Count);
     foreach (var group in Groups)
     {
         BinSerialize.WriteUShort(ref buffer, group);
     }
 }
コード例 #7
0
ファイル: Pv2MissionItem.cs プロジェクト: asvol/mavlink.net
 public void Serialize(ref Span <byte> buffer)
 {
     if (Trigger == null)
     {
         throw new NullReferenceException($"{nameof(Pv2MissionItem)}.{nameof(Trigger)} == null");
     }
     if (Action == null)
     {
         throw new NullReferenceException($"{nameof(Pv2MissionItem)}.{nameof(Action)} == null");
     }
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Index);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Trigger.Type);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Action.Type);
     Trigger.Serialize(ref buffer);
     Action.Serialize(ref buffer);
 }
コード例 #8
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)FieldType);
     Desc.Serialize(ref buffer);
 }
コード例 #9
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, FieldsCount);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, RecordsCount);
     BinSerialize.WriteUInt(ref buffer, DescriptionHash);
 }
コード例 #10
0
ファイル: Pv2WorkModeInfo.cs プロジェクト: asvol/mavlink.net
 public override void Serialize(ref Span <byte> buffer)
 {
     base.Serialize(ref buffer);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Icon);
 }
コード例 #11
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Count);
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Data.Length);
     BinSerialize.WriteBlock(ref buffer, new ReadOnlySpan <byte>(Data));
 }
コード例 #12
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, SessionCount);
 }
コード例 #13
0
ファイル: Pv2ParamValue.cs プロジェクト: asvol/mavlink.net
 public virtual void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Index);
 }
コード例 #14
0
 public void Serialize(ref Span <byte> buffer)
 {
     Debug.Assert(Value != null, nameof(Value) + " != null");
     BinSerialize.WritePackedUnsignedInteger(ref buffer, (uint)Value.Type);
     Value.Serialize(ref buffer);
 }
コード例 #15
0
ファイル: Pv2UIntParamType.cs プロジェクト: asvol/mavlink.net
 protected override void SerializeValue(ref Span <byte> buffer, uint value)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, value);
 }
コード例 #16
0
 public void Serialize(ref Span <byte> buffer)
 {
     BinSerialize.WritePackedUnsignedInteger(ref buffer, Uint1);
     BinSerialize.WriteDouble(ref buffer, Double1);
     BinSerialize.WriteString(ref buffer, String);
 }