Ev3devMapping.ControlAttribute.FromBinary C# (CSharp) Method

FromBinary() public static method

public static FromBinary ( BinaryReader reader ) : ControlAttribute
reader BinaryReader
return ControlAttribute
	public static ControlAttribute FromBinary(BinaryReader reader)
	{
		ControlAttributes attribute = (ControlAttributes) reader.ReadByte ();
		byte length = reader.ReadByte ();

		switch (attribute)
		{
		case ControlAttributes.UNIQUE_NAME:
		case ControlAttributes.CALL:
			return ControlAttributeString.FromBinary (attribute, length, reader);
		case ControlAttributes.CRATION_DELAY_MS:
			return ControlAttributeU16.FromBinary (attribute, length, reader);
		case ControlAttributes.RETURN_VALUE:
			return ControlAttributeI32.FromBinary (attribute, length, reader);
		default:
			return ControlAttributeUnknown.FromBinary (attribute, length, reader);
		}			
	}

Usage Example

Exemplo n.º 1
0
	public void FromBinary(BinaryReader reader)
	{
		attributes.Clear ();
		header.FromBinary (reader);

		if (header.payload_length == 0)
			return;

		int remaining = header.payload_length;

		while (remaining > 0)
		{
			if (remaining < ControlAttribute.CONTROL_ATTRIBUTE_HEADER_BYTES)
				throw new ArgumentException ("Incorrect payload - not enough data for attribute header");

			ControlAttribute attribute = ControlAttribute.FromBinary (reader);
			remaining -= attribute.GetTotalLength ();
			attributes.Add (attribute);
		}			
		Validate();
	}