Settings über Templates

04/12/2008 - 07:29 von Martin Stöferle | Report spam
Guten Morgen,
ich habe viele Komponenten, die ich konfigurieren muss.

Scanner - 1 D Code
Drucker
usw.

Ähnlich dem: http://dzaebel.net/SettingsExample2.htm

Was ich jetzt suche:
Ich mache mir eine Form. Alle Komponenten laden diese Form.

Über ein this.grid Control lade ich die Konfig rein.

Da die Komponenten gleich zu konfigurieren sind, möchte ich den Weg über
Template gehen.

Problem:
Wie?

Hat jemanden einen Tipp?

Zu speichern über XML
<?xml version="1.0" encoding="utf-16"?>
<ScannerHandShakeData
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PortName>COM7</PortName>
<BaudRate>9600</BaudRate>
<DataBits>8</DataBits>
<StopBits>One</StopBits>
<Parity>None</Parity>
<Handshake>None</Handshake>
<ReadTimeout>3000</ReadTimeout>
<WriteTimeout>2500</WriteTimeout>
</ScannerHandShakeData>

Grüße Martin



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;

namespace Configuration
{
/// <summary>
/// scanner handshake data
/// (Connection data)
/// </summary>
public class ScannerHandShakeData
{
/// <summary>
/// Port name
/// </summary>
public string PortName { get; set; }

/// <summary>
/// Baud rate
/// </summary>
public int BaudRate { get; set; }

/// <summary>
/// Data bits
/// </summary>
public short DataBits { get; set; }

/// <summary>
/// Stop bits
/// </summary>
public StopBits StopBits { get; set; }

/// <summary>
/// Parity
/// </summary>
public Parity Parity { get; set; }

/// <summary>
/// Handshake
/// </summary>
public Handshake Handshake { get; set; }

/// <summary>
/// ReadTimeout
/// </summary>
public int ReadTimeout { get; set; }

/// <summary>
/// WriteTimeout
/// </summary>
public int WriteTimeout { get; set; }
}

/// <summary>
/// trigger strings
/// </summary>
public class ScannerTriggerStrings
{
/// <summary>
/// Start trigger string
/// </summary>
public string Start { get; set; }

/// <summary>
/// End trigger string
/// </summary>
public string End { get; set; }
}
}

public partial class ConfigurationComponentScanner :
ConfigurationComponent
{
private ScannerHandShakeData handShakeData;
private ScannerTriggerStrings triggerData;

public override string ConfigName { get { return "Cognex
Scanner"; } }

public ConfigurationComponentScanner()
{
InitializeComponent();
}

private void ConfigurationComponentScanner_Load(object sender,
EventArgs e)
{
handShakeData = new ScannerHandShakeData();
handShakeData.BaudRate = 9600;
handShakeData.PortName = "TestScanner";

this.gridConnection.SelectedObject = handShakeData;
this.gridTrigger.SelectedObject = triggerData;
}

public override void OnSave()
{
}




namespace Configuration
{
public partial class ConfigurationComponent : UserControl
{
public ConfigurationComponent()
{
InitializeComponent();
}

public virtual string ConfigName
{
get
{
return "(unbennant)";
}
}

public virtual string ConfigDescription
{
get
{
return String.Format("Konfigurationsparameter der {0}
Komponente:", this.ConfigName);
}
}

public virtual void OnSave() { }
public virtual void OnLoad() { }
public virtual void OnCancel() { }
}
}



public partial class frmConfigurationBase : Form
{
frmGeneral MyGeneral;
public frmConfigurationBase()
{
InitializeComponent();

MyGeneral = new frmGeneral();
}

private ConfigurationComponent configComponent;

public frmConfigurationBase(ConfigurationComponent configComponent)
{
InitializeComponent();

this.configComponent = configComponent;
}

private void frmConfigurationBase_Load(object sender, EventArgs e)
{
try
{
this.Text = configComponent.ConfigName + " Konfiguration";
this.lblDesc.Text = configComponent.ConfigDescription;

configComponent.Dock = System.Windows.Forms.DockStyle.Fill;
configComponent.Location = new System.Drawing.Point(0, 0);
configComponent.Name = "configControl";
configComponent.Size = this.pnlComponentPlaceholder.Size;
configComponent.TabIndex = 0;

this.pnlComponentPlaceholder.Controls.Add(configComponent);

configComponent.OnLoad();
}
catch (Exception ex)
{
MyGeneral.ShowErrorMessage("Konnte die Einstellungen nicht
laden.", ex);
}
}

private void btnSave_Click(object sender, EventArgs e)
{
try
{
configComponent.OnSave();

MessageBox.Show("Die Einstellungen wurden erfolgreich
gespeichert.");
this.Close();
}
catch (Exception ex)
{
MyGeneral.ShowErrorMessage("Konnte die Einstellungen nicht
speichern.", ex);
}
}

private void btnCancel_Click(object sender, EventArgs e)
{
configComponent.OnCancel();
this.Close();
}
}
 

Lesen sie die antworten

#1 Martin Stöferle
07/12/2008 - 09:52 | Warnen spam
Guten Morgen,
ich habe viele Komponenten, die ich konfigurieren muss.

Scanner - 1 D Code
Drucker
usw.

Ähnlich dem: http://dzaebel.net/SettingsExample2.htm

Was ich jetzt suche:
Ich mache mir eine Form. Alle Komponenten laden diese Form.

Über ein this.grid Control lade ich die Konfig rein.

Da die Komponenten gleich zu konfigurieren sind, möchte ich den Weg über
Template gehen.

Problem:
Wie?



ok vielleicht einfacher formuliert.

Wie würde man Geràte konfiguieren, die àhnlich sind.
Welches Softwarekonzept würde man wàhlen?
Ich dachte an Templates.
Basisform
FormDrucker
FormScanner
.

Hat jemanden einen Tipp?

Gruß, Martin

Ähnliche fragen