private void ParseTargetsPacket(BinaryReader br) { //bear in mind the first int32 is picked off for us. LocalMapTargetsMsg targets = new LocalMapTargetsMsg(); int numTargets = br.ReadInt32(); //Console.WriteLine("GOT " + numTargets + " targets!"); targets.targets = new List <LocalMapTarget>(numTargets); targets.timestamp = br.ReadDouble(); for (int i = 0; i < numTargets; i++) { //now get the targets LocalMapTarget target = new LocalMapTarget(); int numPoints = br.ReadInt32(); target.type = br.ReadInt32(); target.x = br.ReadSingle(); target.y = br.ReadSingle(); target.speed = br.ReadSingle(); target.heading = br.ReadSingle(); target.width = br.ReadSingle(); target.orientation = br.ReadSingle(); for (int k = 0; k < 36; k++) { br.ReadSingle(); //mess the covariance matrix } target.points = new List <LocalMapPoint>(numPoints); for (int j = 0; j < numPoints; j++) { short x = br.ReadInt16(); short y = br.ReadInt16(); target.points.Add(new LocalMapPoint(x / 100.0, y / 100.0)); //Console.WriteLine("got to " + i + " " + j); } targets.targets.Add(target); } if (TargetsReceived != null) { TargetsReceived(this, new LocalMapTargetsRXEventArgs(targets)); } }
private void ParseTargetsPacket(BinaryReader br) { //bear in mind the first int32 is picked off for us. LocalMapTargetsMsg targets = new LocalMapTargetsMsg(); int numTargets = br.ReadInt32(); //Console.WriteLine("GOT " + numTargets + " targets!"); targets.targets = new List<LocalMapTarget>(numTargets); targets.timestamp = br.ReadDouble(); for (int i = 0; i < numTargets; i++) { //now get the targets LocalMapTarget target = new LocalMapTarget(); int numPoints = br.ReadInt32(); target.type = br.ReadInt32(); target.x = br.ReadSingle(); target.y = br.ReadSingle(); target.speed = br.ReadSingle(); target.heading = br.ReadSingle(); target.width = br.ReadSingle(); target.orientation = br.ReadSingle(); for (int k = 0; k < 36; k++) br.ReadSingle(); //mess the covariance matrix target.points = new List<LocalMapPoint>(numPoints); for (int j = 0; j < numPoints; j++) { short x = br.ReadInt16(); short y = br.ReadInt16(); target.points.Add (new LocalMapPoint (x / 100.0, y / 100.0)); //Console.WriteLine("got to " + i + " " + j); } targets.targets.Add(target); } if (TargetsReceived != null) TargetsReceived(this, new LocalMapTargetsRXEventArgs(targets)); }