using System.IO; using System.IO.Ports; using System.Xml.Serialization; using TBF.BenchControl.Generic; namespace TBF.BenchControl.Cameras.IdcCamera { public class IdcCameraCfg : ComponentCfgBase, Generic.IComponentCfg { public int ComPortNr; /// Com port number 1..999 public int BaudRate; /// Baud rate 57600 or 115200 public float BrightnessCam; /// Relative brightness 0 .. 1.0f /// Parameterless constructor public IdcCameraCfg() { } /// Constructor public IdcCameraCfg(IComponentFactory factory, string name, int comPortNr, int baudRate, float brightnessCam) : base(factory, name) { this.ComPortNr = comPortNr; this.BaudRate = baudRate; this.BrightnessCam = brightnessCam; } public IComponentCfg Clone() { return new IdcCameraCfg(Factory, Name, ComPortNr, BaudRate, BrightnessCam); } public string ToString(int i) { return string.Format("COM{0}, {1}Bd, brightness={2}%", ComPortNr, BaudRate, (int)(100.0f * BrightnessCam)); } public TBF.Entities.Component CreateDbEntity() { using (var writer = new StringWriter()) { (new XmlSerializer(GetType())).Serialize(writer, this); return Entities.Component.CreateFromCfg(Name, Factory.ClassName, ParentName, ItemNr, DebugLevel, LogLevel, writer.ToString()); } } public static IComponentCfg CreateFromDbEntity(Entities.Component component, IComponentFactory factory) { using (var reader = new StringReader(component.Parameters)) { IdcCameraCfg config = (IdcCameraCfg)(new XmlSerializer(typeof(IdcCameraCfg))).Deserialize(reader); config.InitCfgBaseFromEntity(component, factory); return config; } } } }