private void UpdateSonarChart(DistanceSensorsList data) { if (this.crtUltrasinicSensor.InvokeRequired) { this.crtUltrasinicSensor.BeginInvoke((MethodInvoker) delegate() { this.crtUltrasinicSensor.Series[0].Points.DataBindXY(data.GetPositions(), data.GetUltrasonic()); this.crtUltrasinicSensor.Series[1].Points.DataBindXY(data.GetPositions(), data.GetInfrared()); }); } else { this.crtUltrasinicSensor.Series[0].Points.DataBindXY(data.GetPositions(), data.GetUltrasonic()); this.crtUltrasinicSensor.Series[1].Points.DataBindXY(data.GetPositions(), data.GetInfrared()); } }
private void tsmiAsXML_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "XML (*.xml)|*.xml"; sfd.FilterIndex = 1; sfd.RestoreDirectory = true; if (sfd.ShowDialog() == DialogResult.OK) { sfd.FileName = AppUtils.GetDateTime() + ".XML"; if (!string.IsNullOrEmpty(sfd.FileName)) { int us = 0; int ir = 1; double usLen = this.crtUltrasinicSensor.Series[us].Points.Count; double irLen = this.crtUltrasinicSensor.Series[ir].Points.Count; DistanceSensorsList sonarData = new DistanceSensorsList(); if (usLen > 0 && irLen > 0 && usLen == irLen) { for (int angle = 0; angle < usLen; angle++) { sonarData.Add( new DistanceSensors( angle, this.crtUltrasinicSensor.Series[us].Points[angle].YValues[0], this.crtUltrasinicSensor.Series[ir].Points[angle].YValues[0])); } } DistanceSensorsList.SaveXML(sonarData, sfd.FileName); } } }