void Processstuff(byte[] message) { BinaryReader br = new BinaryReader(new MemoryStream(message)); ClusteredSickMessageID msgID = (ClusteredSickMessageID)br.ReadInt32(); int seq = (br.ReadInt32()); double time = br.ReadDouble(); List <SickCluster> clusters = new List <SickCluster>(); int numclusters = br.ReadInt32(); for (int i = 0; i < numclusters; i++) { SickCluster cluster = new SickCluster(); cluster.stable = br.ReadBoolean(); cluster.leftOccluded = br.ReadBoolean(); cluster.rightOccluded = br.ReadBoolean(); int numpoints = br.ReadInt32(); if (numpoints != 0) { cluster.points = new List <SickXYPoint>(numpoints); } for (int j = 0; j < numpoints; j++) { double x = br.ReadDouble(); double y = br.ReadDouble(); SickXYPoint pt = new SickXYPoint(x, y); cluster.points.Add(pt); } clusters.Add(cluster); } if (br.BaseStream.Position != br.BaseStream.Length) { Console.WriteLine("Incomplete read of rear sick clusters."); } if (GotPacket != null) { GotPacket(this, new ClusteredSickEventArgs(time, clusters)); } }
void Processstuff(byte[] message) { BinaryReader br = new BinaryReader(new MemoryStream(message)); ClusteredSickMessageID msgID = (ClusteredSickMessageID)br.ReadInt32(); int seq = (br.ReadInt32()); double time = br.ReadDouble(); List<SickCluster> clusters = new List<SickCluster>(); int numclusters = br.ReadInt32(); for (int i = 0; i < numclusters; i++) { SickCluster cluster = new SickCluster(); cluster.stable = br.ReadBoolean(); cluster.leftOccluded = br.ReadBoolean(); cluster.rightOccluded = br.ReadBoolean(); int numpoints = br.ReadInt32(); if (numpoints !=0) cluster.points = new List<SickXYPoint>(numpoints); for (int j = 0; j < numpoints; j++) { double x = br.ReadDouble(); double y = br.ReadDouble(); SickXYPoint pt = new SickXYPoint(x,y); cluster.points.Add(pt); } clusters.Add(cluster); } if (br.BaseStream.Position != br.BaseStream.Length) Console.WriteLine("Incomplete read of rear sick clusters."); if (GotPacket != null) GotPacket(this, new ClusteredSickEventArgs(time,clusters)); }