85 lines
3.1 KiB
C#
85 lines
3.1 KiB
C#
using Inspectron.Settings;
|
|
using Inspectron.Settings.Attributes;
|
|
using System.ComponentModel;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
using VisionBuilder.UI.Common;
|
|
|
|
namespace Lindt.Colorballs.Duo.Utils;
|
|
|
|
public class VisionBuilderRingbufferSettings : ISettings
|
|
{
|
|
|
|
public VisionBuilderRingbufferSettings(string cameraName)
|
|
{
|
|
CameraName = cameraName;
|
|
}
|
|
|
|
public string CameraName { get; }
|
|
|
|
public int MaxBad { get; set; } = 10000;
|
|
public int MaxGood { get; set; } = 100;
|
|
|
|
|
|
[SettingDescription(
|
|
@"
|
|
Specifies directory, in which MaxBad and MaxGood are applied.
|
|
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 - 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 - month of the session start
|
|
$SS_YEAR - year of the session start
|
|
|
|
"
|
|
)]
|
|
[SettingPreview(typeof(VisionBuilderRingbufferSettings), nameof(ImagesPathTemplatePreview))]
|
|
public string Root { get; set; } = @"..\Data\Ringbuffer\$SS_MONTH $SS_YEAR";
|
|
|
|
|
|
|
|
[SettingDescriptionAttribute("Specifies directory, relative to the Root")]
|
|
[SettingPreview(typeof(VisionBuilderRingbufferSettings), nameof(ImagesPathTemplatePreview))]
|
|
public string GoodImagesPathTemplate { get; set; } = @"\$RECIPE_NAME";
|
|
|
|
[SettingDescriptionAttribute("Specifies directory, relative to the Root")]
|
|
[SettingPreview(typeof(VisionBuilderRingbufferSettings),nameof(ImagesPathTemplatePreview))]
|
|
public string BadImagesPathTemplate { get; set; } =
|
|
@"\$RECIPE_NAME\$DEFECT_NAME";
|
|
|
|
|
|
[SettingPreview(typeof(VisionBuilderRingbufferSettings), nameof(ImagesPathTemplatePreview))]
|
|
public string FilenameTemplate { get; set; } = "$YEAR-$MONTH-$DAY $HOUR-$MINUTE-$SECOND $MS";
|
|
|
|
|
|
public void RegisterSettings(InspectronSettings settings)
|
|
{
|
|
settings.RegisterSimple(this, () => this.MaxGood, CameraName+"/Ringbuffer", nameof(MaxGood));
|
|
settings.RegisterSimple(this, () => this.MaxBad, CameraName + "/Ringbuffer", nameof(MaxBad));
|
|
settings.RegisterSimple(this, () => this.Root, CameraName + "/Ringbuffer", nameof(Root));
|
|
settings.RegisterSimple(this, () => this.GoodImagesPathTemplate, CameraName + "/Ringbuffer", nameof(GoodImagesPathTemplate));
|
|
settings.RegisterSimple(this, () => this.BadImagesPathTemplate, CameraName + "/Ringbuffer", nameof(BadImagesPathTemplate));
|
|
settings.RegisterSimple(this, () => this.FilenameTemplate, CameraName + "/Ringbuffer", nameof(FilenameTemplate));
|
|
}
|
|
|
|
public static string ImagesPathTemplatePreview(object template)
|
|
{
|
|
return PathSettingsUtils.ConvertVariables((string) template, DateTime.Now, DateTime.Now, "my recipe",
|
|
"my defect", "my camera");
|
|
}
|
|
} |