Skip to content

Commit 2e78603

Browse files
authored
Merge a90cd4e into 9d789c1
2 parents 9d789c1 + a90cd4e commit 2e78603

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

GCSViews/ConfigurationView/ConfigRawParams.cs

+13-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using System.Threading.Tasks;
1717
using System.Timers;
1818
using System.Windows.Forms;
19+
using org.mariuszgromada.math.mxparser;
1920

2021
namespace MissionPlanner.GCSViews.ConfigurationView
2122
{
@@ -378,8 +379,13 @@ private void Params_CellValueChanged(object sender, DataGridViewCellEventArgs e)
378379
double max = 0;
379380

380381
var value = (string)Params[e.ColumnIndex, e.RowIndex].Value;
382+
value = value.Replace(',', '.');
381383

382-
var newvalue = float.Parse(value.Replace(',', '.'), CultureInfo.InvariantCulture);
384+
var newvalue = (float) new Expression(value).calculate();
385+
if (float.IsNaN(newvalue) || float.IsInfinity(newvalue))
386+
{
387+
throw new Exception();
388+
}
383389

384390
var readonly1 = ParameterMetaDataRepository.GetParameterMetaData(
385391
Params[Command.Index, e.RowIndex].Value.ToString(),
@@ -420,9 +426,12 @@ private void Params_CellValueChanged(object sender, DataGridViewCellEventArgs e)
420426
}
421427

422428
Params[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.Green;
423-
log.InfoFormat("Queue change {0} = {1}", Params[Command.Index, e.RowIndex].Value, Params[e.ColumnIndex, e.RowIndex].Value);
424-
_changes[Params[Command.Index, e.RowIndex].Value] =
425-
float.Parse((((string)Params[e.ColumnIndex, e.RowIndex].Value).Replace(',','.')),CultureInfo.InvariantCulture);
429+
log.InfoFormat("Queue change {0} = {1} ({2})", Params[Command.Index, e.RowIndex].Value, Params[e.ColumnIndex, e.RowIndex].Value, newvalue);
430+
_changes[Params[Command.Index, e.RowIndex].Value] = newvalue;
431+
432+
Params.CellValueChanged -= Params_CellValueChanged;
433+
Params[e.ColumnIndex, e.RowIndex].Value = newvalue;
434+
Params.CellValueChanged += Params_CellValueChanged;
426435
}
427436
catch (Exception)
428437
{

0 commit comments

Comments
 (0)