/// <summary>Helper: create a new instance to deserializing into</summary> public static CDTIReport Deserialize(Stream stream) { CDTIReport instance = new CDTIReport(); Deserialize(stream, instance); return(instance); }
/// <summary>Helper: create a new instance to deserializing into</summary> public static CDTIReport DeserializeLengthDelimited(Stream stream) { CDTIReport instance = new CDTIReport(); DeserializeLengthDelimited(stream, instance); return(instance); }
/// <summary>Helper: create a new instance to deserializing into</summary> public static CDTIReport DeserializeLength(Stream stream, int length) { CDTIReport instance = new CDTIReport(); DeserializeLength(stream, length, instance); return(instance); }
/// <summary>Helper: Serialize with a varint length prefix</summary> public static void SerializeLengthDelimited(Stream stream, CDTIReport instance) { var data = SerializeToBytes(instance); global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteUInt32(stream, (uint)data.Length); stream.Write(data, 0, data.Length); }
/// <summary>Helper: put the buffer into a MemoryStream and create a new instance to deserializing into</summary> public static CDTIReport Deserialize(byte[] buffer) { CDTIReport instance = new CDTIReport(); using (var ms = new MemoryStream(buffer)) Deserialize(ms, instance); return(instance); }
/// <summary>Helper: Serialize into a MemoryStream and return its byte array</summary> public static byte[] SerializeToBytes(CDTIReport instance) { using (var ms = new MemoryStream()) { Serialize(ms, instance); return(ms.ToArray()); } }
/// <summary>Serialize the instance into the stream</summary> public static void Serialize(Stream stream, CDTIReport instance) { BinaryWriter bw = new BinaryWriter(stream); var msField = global::SilentOrbit.ProtocolBuffers.ProtocolParser.Stack.Pop(); stream.WriteByte(0); // Key for field: 1, Fixed64 stream.WriteByte(9); bw.Write(instance.Timestamp); if (instance.Ownship == null) { throw new ArgumentNullException("Ownship", "Required by proto specification."); } // Key for field: 2, LengthDelimited stream.WriteByte(18); msField.SetLength(0); Example.CDTIPlane.Serialize(msField, instance.Ownship); // Length delimited byte array uint length2 = (uint)msField.Length; global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteUInt32(stream, length2); stream.Write(msField.GetBuffer(), 0, (int)length2); if (instance.AdvisoryMessage != null) { // Key for field: 3, LengthDelimited stream.WriteByte(26); global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteBytes(stream, Encoding.UTF8.GetBytes(instance.AdvisoryMessage)); } // Key for field: 4, Varint stream.WriteByte(32); global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteUInt64(stream, (ulong)instance.AdvisoryLevel); if (instance.Planes != null) { foreach (var i5 in instance.Planes) { // Key for field: 5, LengthDelimited stream.WriteByte(42); msField.SetLength(0); Example.CDTIPlane.Serialize(msField, i5); // Length delimited byte array uint length5 = (uint)msField.Length; global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteUInt32(stream, length5); stream.Write(msField.GetBuffer(), 0, (int)length5); } } stream.WriteByte(0); stream.WriteByte(0); stream.WriteByte(0); global::SilentOrbit.ProtocolBuffers.ProtocolParser.Stack.Push(msField); }
private static void send() { Example.CDTIReport report = new Example.CDTIReport(); Example.CDTIPlane ownship = new Example.CDTIPlane(); ownship.Id = "2"; ownship.Position = new Example.Vector(5, 3, 4); ownship.Velocity = new Example.Vector(5, 3, 4); ownship.severity = (Example.CDTIPlane.Severity.TRAFFIC); report.Ownship = ownship; report.Timestamp = 1; report.AdvisoryLevel = (Example.CDTIReport.Severity) 0; report.AdvisoryMessage = "message"; report.Planes = planes; byte junkByte = 200; //stream.WriteByte(junkByte); Example.CDTIReport.Serialize(stream, report); }
private void intake(CDTIReport report) { logger("at intake"); clearPlanes(); foreach (CDTIPlane plane in report.Planes) { AddToScreen(plane); } AddToScreen(report.Ownship); logger("end intake"); }
/// <summary>Helper: create a new instance to deserializing into</summary> public static CDTIReport DeserializeLength(Stream stream, int length) { CDTIReport instance = new CDTIReport(); DeserializeLength(stream, length, instance); return instance; }
/// <summary>Helper: create a new instance to deserializing into</summary> public static CDTIReport DeserializeLengthDelimited(Stream stream) { CDTIReport instance = new CDTIReport(); DeserializeLengthDelimited(stream, instance); return instance; }
/// <summary>Serialize the instance into the stream</summary> public static void Serialize(Stream stream, CDTIReport instance) { BinaryWriter bw = new BinaryWriter(stream); var msField = global::SilentOrbit.ProtocolBuffers.ProtocolParser.Stack.Pop(); stream.WriteByte(0); // Key for field: 1, Fixed64 stream.WriteByte(9); bw.Write(instance.Timestamp); if (instance.Ownship == null) throw new ArgumentNullException("Ownship", "Required by proto specification."); // Key for field: 2, LengthDelimited stream.WriteByte(18); msField.SetLength(0); Example.CDTIPlane.Serialize(msField, instance.Ownship); // Length delimited byte array uint length2 = (uint)msField.Length; global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteUInt32(stream, length2); stream.Write(msField.GetBuffer(), 0, (int)length2); if (instance.AdvisoryMessage != null) { // Key for field: 3, LengthDelimited stream.WriteByte(26); global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteBytes(stream, Encoding.UTF8.GetBytes(instance.AdvisoryMessage)); } // Key for field: 4, Varint stream.WriteByte(32); global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteUInt64(stream,(ulong)instance.AdvisoryLevel); if (instance.Planes != null) { foreach (var i5 in instance.Planes) { // Key for field: 5, LengthDelimited stream.WriteByte(42); msField.SetLength(0); Example.CDTIPlane.Serialize(msField, i5); // Length delimited byte array uint length5 = (uint)msField.Length; global::SilentOrbit.ProtocolBuffers.ProtocolParser.WriteUInt32(stream, length5); stream.Write(msField.GetBuffer(), 0, (int)length5); } } stream.WriteByte(0); stream.WriteByte(0); stream.WriteByte(0); global::SilentOrbit.ProtocolBuffers.ProtocolParser.Stack.Push(msField); }
IEnumerator connect() { server = new TcpListener(IPAddress.Parse("127.0.0.1"), 13000); server.Start(); logger("server Start ver 1.4.3"); while (isRunning) { // check if new connections are pending, if not, be nice and sleep 100ms if (!server.Pending()) { Thread.Sleep(100); } else { File.Delete("temp.txt"); TcpClient client = server.AcceptTcpClient(); logger("connection established"); NetworkStream ns = client.GetStream(); const int bufSize = 0x1000; byte[] buf = new byte[bufSize]; bool rep = false; Example.CDTIReport report = null; // MemoryStream ms = new MemoryStream(); Thread.Sleep(400); long totalBytes = 0; int bytesRead = 0; while ((bytesRead = ns.Read(buf, 0, bufSize)) > 0) { File.Delete("temp.txt"); FileStream file = new FileStream("temp.txt", FileMode.Create); file.Write(buf, 0, bytesRead); logger("temp written"); // ms.Write(buf, 0, bytesRead); totalBytes += bytesRead; file.Close(); print(bytesRead); FileStream fs = new FileStream("temp.txt", FileMode.Open); /* try * { * logger("reading temp"); * report = Example.CDTIReport.Deserialize(fs); * fs.Close(); * logger("temp read"); * logger("" +report.Planes.Count); * logger("" +report.Ownship); * logger("" +report.Timestamp); * logger(report.AdvisoryMessage); * rep = true; * lastReport = report; * * //} * // catch(Exception e) * //{ * // logger("Exception caught in read" + e.Message); */ //fs.Close(); //fs = new FileStream("temp.txt", FileMode.Open); try { fs.Seek(4, SeekOrigin.Begin); logger("reading temp"); report = CDTIReport.Deserialize(fs); fs.Close(); logger("temp read"); logger("" + report.Planes.Count); logger("" + report.Ownship); logger("" + report.Timestamp); logger(report.AdvisoryMessage); rep = true; lastReport = report; } catch (Exception f) { logger("Exception caught in read" + f.Message); fs.Close(); if (report != null) { lastReport = report; rep = true; } } // } if (rep) { yield return(Ninja.JumpToUnity); intake(report); // intake(CDTIReport.Deserialize(ns)); yield return(Ninja.JumpBack); } rep = false; } client.Close(); } } server.Stop(); yield return(null); }
/// <summary>Helper: put the buffer into a MemoryStream and create a new instance to deserializing into</summary> public static CDTIReport Deserialize(byte[] buffer) { CDTIReport instance = new CDTIReport(); using (var ms = new MemoryStream(buffer)) Deserialize(ms, instance); return instance; }
/// <summary>Helper: Serialize into a MemoryStream and return its byte array</summary> public static byte[] SerializeToBytes(CDTIReport instance) { using (var ms = new MemoryStream()) { Serialize(ms, instance); return ms.ToArray(); } }
IEnumerator connect() { server = new TcpListener(IPAddress.Parse("127.0.0.1"), 13000); server.Start(); logger("server Start ver 1.4.3"); while (isRunning) { // check if new connections are pending, if not, be nice and sleep 100ms if (!server.Pending()) { Thread.Sleep(100); } else { File.Delete("temp.txt"); TcpClient client = server.AcceptTcpClient(); logger("connection established"); NetworkStream ns = client.GetStream(); const int bufSize = 0x1000; byte[] buf = new byte[bufSize]; bool rep = false; Example.CDTIReport report = null; // MemoryStream ms = new MemoryStream(); Thread.Sleep(400); long totalBytes = 0; int bytesRead = 0; while((bytesRead = ns.Read(buf,0,bufSize)) > 0) { File.Delete("temp.txt"); FileStream file = new FileStream("temp.txt", FileMode.Create); file.Write(buf, 0, bytesRead); logger("temp written"); // ms.Write(buf, 0, bytesRead); totalBytes += bytesRead; file.Close(); print(bytesRead); FileStream fs = new FileStream("temp.txt", FileMode.Open); /* try { logger("reading temp"); report = Example.CDTIReport.Deserialize(fs); fs.Close(); logger("temp read"); logger("" +report.Planes.Count); logger("" +report.Ownship); logger("" +report.Timestamp); logger(report.AdvisoryMessage); rep = true; lastReport = report; //} // catch(Exception e) //{ // logger("Exception caught in read" + e.Message); */ //fs.Close(); //fs = new FileStream("temp.txt", FileMode.Open); try { fs.Seek(4, SeekOrigin.Begin); logger("reading temp"); report = CDTIReport.Deserialize(fs); fs.Close(); logger("temp read"); logger("" + report.Planes.Count); logger("" + report.Ownship); logger("" + report.Timestamp); logger(report.AdvisoryMessage); rep = true; lastReport = report; } catch (Exception f) { logger("Exception caught in read" + f.Message); fs.Close(); if(report != null) { lastReport = report; rep = true; } } // } if(rep) { yield return Ninja.JumpToUnity; intake(report); // intake(CDTIReport.Deserialize(ns)); yield return Ninja.JumpBack; } rep = false; } client.Close(); } } server.Stop(); yield return null; }
private static void send() { Example.CDTIReport report = new Example.CDTIReport(); Example.CDTIPlane ownship = new Example.CDTIPlane(); ownship.Id = "2"; ownship.Position = new Example.Vector(5,3,4); ownship.Velocity = new Example.Vector(5,3,4); ownship.severity = (Example.CDTIPlane.Severity.TRAFFIC); report.Ownship = ownship; report.Timestamp = 1; report.AdvisoryLevel = (Example.CDTIReport.Severity)0; report.AdvisoryMessage = "message"; report.Planes = planes; byte junkByte = 200; //stream.WriteByte(junkByte); Example.CDTIReport.Serialize(stream, report); }
/// <summary>Helper: create a new instance to deserializing into</summary> public static CDTIReport Deserialize(Stream stream) { CDTIReport instance = new CDTIReport(); Deserialize(stream, instance); return instance; }