45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
namespace Passer.RoboidControl {
|
|
|
|
/// <summary>
|
|
/// Message for sending generic text
|
|
/// </summary>
|
|
public class TextMsg : IMessage {
|
|
/// <summary>
|
|
/// The message ID
|
|
/// </summary>
|
|
public const byte Id = 0xB0;
|
|
/// <summary>
|
|
/// The length of the message without the text itself
|
|
/// </summary>
|
|
public const byte length = 2;
|
|
/// <summary>
|
|
/// The text
|
|
/// </summary>
|
|
public string text = "";
|
|
|
|
/// <summary>
|
|
/// Create a new message for sending
|
|
/// </summary>
|
|
/// <param name="text">The text to send</param>
|
|
public TextMsg(string text) {
|
|
this.text = text;
|
|
}
|
|
|
|
/// @copydoc Passer::RoboidControl::IMessage::IMessage(byte[] buffer)
|
|
public TextMsg(byte[] buffer) : base(buffer) { }
|
|
|
|
/// @copydoc Passer::RoboidControl::IMessage::Serialize
|
|
public override byte Serialize(ref byte[] buffer) {
|
|
if (buffer.Length < TextMsg.length + this.text.Length || this.text.Length == 0)
|
|
return 0;
|
|
|
|
byte ix = 0;
|
|
buffer[ix++] = TextMsg.Id;
|
|
buffer[ix++] = (byte)this.text.Length;
|
|
for (int textIx = 0; textIx < this.text.Length; textIx++)
|
|
buffer[ix++] = (byte)this.text[textIx];
|
|
return ix;
|
|
}
|
|
}
|
|
|
|
} |