private void PoseUpdate(IEnumerable <Tuple <string, RosMessage.RosFieldVal> > position) { if (this.PoseChanged != null) { var pos = position.Select(f => RosMessage.GetFloat32Val(f.Item2)).ToArray(); this.PoseChanged(this, Tuple.Create(pos[0], pos[1], pos[2])); // drop velocity info } }
private void PositionUpdate(IEnumerable <Tuple <string, RosMessage.RosFieldVal> > position) { foreach (var p in position) { var name = p.Item1; var val = RosMessage.GetFloat32Val(p.Item2); switch (name) { case "x": this.x = val; break; case "y": this.y = val; break; case "z": this.z = val; break; } } this.PositionChanged?.Invoke(this, Tuple.Create(this.x, this.y, this.z)); }