mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Add handling error in the scenario.
This commit is contained in:
@@ -13,11 +13,15 @@ public sealed class AnsiEscapeSequenceRequests : Scenario
|
||||
|
||||
private readonly object _lockAnswers = new ();
|
||||
private readonly Dictionary<DateTime, string> _answers = new ();
|
||||
private readonly object _lockErrors = new ();
|
||||
private readonly Dictionary<DateTime, string> _errors = new ();
|
||||
|
||||
private GraphView _graphView;
|
||||
|
||||
private ScatterSeries _sentSeries;
|
||||
private ScatterSeries _answeredSeries;
|
||||
private Label _lblSummary;
|
||||
private Label _lblErrorSummary;
|
||||
|
||||
public override void Main ()
|
||||
{
|
||||
@@ -151,7 +155,7 @@ public sealed class AnsiEscapeSequenceRequests : Scenario
|
||||
Y = Pos.Bottom (cbDar),
|
||||
X = Pos.Right (tv),
|
||||
Width = Dim.Fill (),
|
||||
Height = Dim.Fill (1)
|
||||
Height = Dim.Fill (2)
|
||||
};
|
||||
|
||||
_lblSummary = new ()
|
||||
@@ -161,6 +165,13 @@ public sealed class AnsiEscapeSequenceRequests : Scenario
|
||||
Width = Dim.Fill ()
|
||||
};
|
||||
|
||||
_lblErrorSummary = new ()
|
||||
{
|
||||
Y = Pos.Bottom (_lblSummary),
|
||||
X = Pos.Right (tv),
|
||||
Width = Dim.Fill ()
|
||||
};
|
||||
|
||||
SetupGraph ();
|
||||
|
||||
w.Add (lbl);
|
||||
@@ -169,6 +180,7 @@ public sealed class AnsiEscapeSequenceRequests : Scenario
|
||||
w.Add (tv);
|
||||
w.Add (_graphView);
|
||||
w.Add (_lblSummary);
|
||||
w.Add (_lblErrorSummary);
|
||||
|
||||
return w;
|
||||
}
|
||||
@@ -322,6 +334,21 @@ public sealed class AnsiEscapeSequenceRequests : Scenario
|
||||
return $"Last:{last} U:{unique} T:{total}";
|
||||
}
|
||||
|
||||
private string GetSummaryErrors ()
|
||||
{
|
||||
if (_errors.Count == 0)
|
||||
{
|
||||
return "No errors received yet";
|
||||
}
|
||||
|
||||
string last = _errors.Last ().Value;
|
||||
|
||||
int unique = _errors.Values.Distinct ().Count ();
|
||||
int total = _errors.Count;
|
||||
|
||||
return $"Last:{last} U:{unique} T:{total}";
|
||||
}
|
||||
|
||||
private void HandleResponse (string response)
|
||||
{
|
||||
lock (_lockAnswers)
|
||||
@@ -330,13 +357,25 @@ public sealed class AnsiEscapeSequenceRequests : Scenario
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleResponseError (string response)
|
||||
{
|
||||
lock (_lockAnswers)
|
||||
{
|
||||
_errors.Add (DateTime.Now, response);
|
||||
}
|
||||
}
|
||||
|
||||
private void SendDar ()
|
||||
{
|
||||
_sends.Add (DateTime.Now);
|
||||
AnsiEscapeSequenceRequest ansiRequest = AnsiEscapeSequenceRequestUtils.CSI_SendDeviceAttributes;
|
||||
if (Application.Driver!.TryWriteAnsiRequest (ansiRequest))
|
||||
{
|
||||
HandleResponse (ansiRequest.AnsiEscapeSequenceResponse.Response);
|
||||
HandleResponse (ansiRequest.AnsiEscapeSequenceResponse?.Response);
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleResponseError (ansiRequest.AnsiEscapeSequenceResponse?.Response);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -383,5 +422,8 @@ public sealed class AnsiEscapeSequenceRequests : Scenario
|
||||
{
|
||||
_lblSummary.Text = GetSummary ();
|
||||
_lblSummary.SetNeedsDisplay ();
|
||||
|
||||
_lblErrorSummary.Text = GetSummaryErrors ();
|
||||
_lblErrorSummary.SetNeedsDisplay ();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user