1.0.6
This commit is contained in:
@@ -25,11 +25,14 @@ namespace VisionBuilder.UI.Statistics
|
||||
private string _currentRecipe;
|
||||
private string _fileName;
|
||||
private string _directoryPath;
|
||||
private int _total = 0;
|
||||
|
||||
private const string BY_EVENTS_FILE_NAME = "statistics_by_events.csv";
|
||||
private const string MONTHLY_FILE_NAME = "statistics_month.csv";
|
||||
private const string EMPTY_DATE = "";
|
||||
private const string EMPTY_TIME = "";
|
||||
private const string DATE_FORMAT = "dd.MM.yyyy";
|
||||
private const string TIME_FORMAT = "HH:mm:ss";
|
||||
public bool DoNotDeleteTempFiles { get; set; } = false;
|
||||
|
||||
public VisionBuilderStatistics(VisionBuilderStatisticsSettings settings, IRecognitionControl recognitionControl, ILoadingService loadingService)
|
||||
@@ -51,7 +54,7 @@ namespace VisionBuilder.UI.Statistics
|
||||
_loadingService.StartLoading("Writing statistics for " + _settings.CameraName);
|
||||
try
|
||||
{
|
||||
_csvStatistics.WriteLine([_startTime.ToString("d"), _startTime.ToString("T"), endedAt.ToString("d"), endedAt.ToString("T"), "", "", ""]);
|
||||
_csvStatistics.WriteLine([_startTime.ToString(DATE_FORMAT), _startTime.ToString(TIME_FORMAT), endedAt.ToString(DATE_FORMAT), endedAt.ToString(TIME_FORMAT), "", "", ""]);
|
||||
_csvStatistics.Dispose();
|
||||
_csvStatistics = null;
|
||||
|
||||
@@ -67,19 +70,21 @@ namespace VisionBuilder.UI.Statistics
|
||||
private void _recognitionControl_ImageProcessed(ImageProcessedEvent obj)
|
||||
{
|
||||
var sw = Stopwatch.StartNew();
|
||||
_total++;
|
||||
if (obj.HasError)
|
||||
{
|
||||
RecordBadImage(obj.ErrorNames[0]);
|
||||
}
|
||||
sw.Stop();
|
||||
Console.WriteLine($"Recording statistics took {sw.ElapsedMilliseconds} ms");
|
||||
Log.Debug($"Recording statistics took {sw.ElapsedMilliseconds} ms");
|
||||
}
|
||||
|
||||
private void _recognitionControl_SessionStarted(SessionStartedEvent obj)
|
||||
{
|
||||
_startTime = obj.SessionStarted;
|
||||
_total = 0;
|
||||
_currentRecipe = obj.RecipeName;
|
||||
_fileName = "tmp_"+Guid.NewGuid().ToString()+".csv";
|
||||
_fileName = BY_EVENTS_FILE_NAME;
|
||||
_directoryPath = PathSettingsUtils.ConvertVariables(_settings.PathTemplate, _startTime, _startTime,
|
||||
obj.RecipeName, cameraName: _settings.CameraName);
|
||||
_filePath = Path.Combine(_directoryPath, _fileName);
|
||||
@@ -89,7 +94,7 @@ namespace VisionBuilder.UI.Statistics
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(_filePath));
|
||||
}
|
||||
_csvStatistics = new CsvStatistics(_filePath, headers);
|
||||
_csvStatistics.WriteLine([_startTime.ToString("d"), _startTime.ToString("T")]); // session started
|
||||
_csvStatistics.WriteLine([_startTime.ToString(DATE_FORMAT), _startTime.ToString(TIME_FORMAT)]); // session started
|
||||
_defects = new ConcurrentDictionary<string, int>();
|
||||
}
|
||||
|
||||
@@ -101,7 +106,7 @@ namespace VisionBuilder.UI.Statistics
|
||||
|
||||
_csvStatistics.WriteLine(
|
||||
|
||||
[_startTime.ToString("d"), _startTime.ToString("T"), EMPTY_DATE, EMPTY_TIME, DateTime.Now.ToString("T"), _currentRecipe, defectName, Metadata]
|
||||
[_startTime.ToString(DATE_FORMAT), _startTime.ToString(TIME_FORMAT), EMPTY_DATE, EMPTY_TIME, DateTime.Now.ToString(TIME_FORMAT), _currentRecipe, defectName, Metadata]
|
||||
|
||||
);
|
||||
|
||||
@@ -119,16 +124,56 @@ namespace VisionBuilder.UI.Statistics
|
||||
var monthFilePath = Path.Combine(_directoryPath, MONTHLY_FILE_NAME);
|
||||
|
||||
var monthStatistics = new CsvStatistics(monthFilePath, [
|
||||
"Date start","Time start","Date end", "Time end" ,"Product","Error type","Error count"
|
||||
|
||||
]);
|
||||
|
||||
monthStatistics.WriteLine(
|
||||
["Start", _startTime.ToString($"{DATE_FORMAT} {TIME_FORMAT}")]
|
||||
);
|
||||
monthStatistics.WriteLine([
|
||||
_settings.MetadataColumnName, Metadata
|
||||
]);
|
||||
monthStatistics.WriteLine(
|
||||
[_settings.ProductColumnName, _currentRecipe]
|
||||
);
|
||||
monthStatistics.WriteLine(
|
||||
[_settings.ErrorColumnName, "Amount"]
|
||||
);
|
||||
|
||||
foreach (var defect in _defects)
|
||||
{
|
||||
monthStatistics.WriteLine(
|
||||
[startDate.ToString("d"), startTime.ToString("T"), endDate.ToString("d"), endTime.ToString("T"), _currentRecipe, defect.Key, defect.Value.ToString()]
|
||||
[defect.Key, defect.Value.ToString()]
|
||||
);
|
||||
}
|
||||
|
||||
var totalDefects = 0;
|
||||
foreach (var defect in _defects)
|
||||
{
|
||||
totalDefects += defect.Value;
|
||||
}
|
||||
|
||||
monthStatistics.WriteLine([]);
|
||||
monthStatistics.WriteLine(
|
||||
["Total errors", totalDefects.ToString()]
|
||||
);
|
||||
monthStatistics.WriteLine(
|
||||
["Total produced(including errors)", _total.ToString()]
|
||||
);
|
||||
|
||||
var percentage = _total > 0 ? (double)totalDefects / _total * 100 : 0;
|
||||
|
||||
monthStatistics.WriteLine(
|
||||
["Error rate", percentage.ToString("F2") + "%"]
|
||||
);
|
||||
|
||||
monthStatistics.WriteLine(
|
||||
[
|
||||
"End", _endTime.ToString($"{DATE_FORMAT} {TIME_FORMAT}")
|
||||
]);
|
||||
|
||||
monthStatistics.WriteLine([]);
|
||||
monthStatistics.WriteLine([]);
|
||||
monthStatistics.Dispose();
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user