Files
HawkeyeVision/VisionBuilder.UI.Common/PathSettingsUtils.cs
2025-07-18 10:13:46 +02:00

74 lines
2.4 KiB
C#

namespace Lindt.Colorballs.Duo.Utils;
public static class PathSettingsUtils
{
public const string INSTUCTIONS = @"
You can use the following system variables:
$RECIPE_NAME - name of the current recipe
$DEFECT_NAME - name of the current defect(for bad images)
$CAMERA_NAME - name of the camera
$HOUR - hour of the image
$MINUTE - minute of the image
$SECOND - second of the image
$MS - milliseconds of the image
$DAY - day of the image
$MONTH_NUM - number of the month of the image
$MONTH_NAME - name of the month of the image
$YEAR - year of the image
$SS_HOUR - hour of the session start
$SS_MINUTE - minute of the session start
$SS_SECOND - second of the session start
$SS_DAY - day of the session start
$SS_MONTH_NUM - number of the month of the session start
$SS_MONTH_NAME - name of the month of the session start
$SS_YEAR - year of the session start";
public static string ConvertVariables(
string text,
DateTime imageTime,
DateTime sessionTime,
string recipeName = "",
string defectName = "",
string cameraName = "")
{
if (string.IsNullOrEmpty(text))
return text;
var replacements = new Dictionary<string, string>
{
["$RECIPE_NAME"] = recipeName,
["$DEFECT_NAME"] = defectName,
["$CAMERA_NAME"] = cameraName,
["$HOUR"] = imageTime.Hour.ToString("D2"),
["$MINUTE"] = imageTime.Minute.ToString("D2"),
["$SECOND"] = imageTime.Second.ToString("D2"),
["$MS"] = imageTime.Millisecond.ToString("D3"),
["$DAY"] = imageTime.Day.ToString("D2"),
["$MONTH_NUM"] = imageTime.Month.ToString("D2"),
["$MONTH_NAME"] = imageTime.ToString("MMMM"),
["$YEAR"] = imageTime.Year.ToString(),
["$SS_HOUR"] = sessionTime.Hour.ToString("D2"),
["$SS_MINUTE"] = sessionTime.Minute.ToString("D2"),
["$SS_SECOND"] = sessionTime.Second.ToString("D2"),
["$SS_DAY"] = sessionTime.Day.ToString("D2"),
["$SS_MONTH_NUM"] = sessionTime.Month.ToString("D2"),
["$SS_MONTH_NAME"] = sessionTime.ToString("MMMM"),
["$SS_YEAR"] = sessionTime.Year.ToString()
};
foreach (var pair in replacements)
{
text = text.Replace(pair.Key, pair.Value);
}
return text;
}
}