Autor Beitrag
Kreidler90
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 12.01.12 13:20 
Hallo,

ich habe eine Frage zum Projektübergreifenden Programmieren. Ich arbeite an einer Schrankensteuerungssoftware und in der Projektmappe befinden sich mehrere Projekte.
Nun möchte ich aus dem Projekt "Driver" die Namen der Treiber sowie die Anzahl der I/O Ports in das Projekt "ControlCenter" bekommen. Desweiteren soll bei einem Update, bei dem nur das Projekt "Driver" verändert/erweitert wird, das "ControlCenter" sich automatisch aktualisieren.
Die Frage die ich mir hierbei stelle ist wie?
Meine Überlegungen waren anfangs eine (Text)Datei, in die alle Treiber mit den I/O Ports gespeichert werden. Anschließend würde das im "ControlCenter" geladen und in eine Liste gespeichert. Kann man das Ganze auch ohne eine Datei ermöglichen?

Anbei ausschnitte vom Code um alles etwas verständlicher zu machen:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
Die Datei adam6x.cs mit den dazugehörigen Treibernamen

namespace GateControl.Driver.adam
{
public class ADAM6050A2 : AdamBaseDrvA6x
    {
        public ADAM6050A2()
        {            
            this.adamTypeName = "Adam6050";
        }
    }

 public class ADAM6050A3 : AdamBaseDrvA6x
    {
        public ADAM6050A3()
        {
            this.adamTypeName = "Adam6050";
        }
    }
...
}

Die Datei AdamModbus6x.cs mit den Ports

namespace GateControl.Driver
{
 public class AdamModbus6x
    {
...
        private int port;
        private int outputChannels; 
        private int inputChannels;
        private int totalChannels;
... 
    }
}


Und schließlich der Wizard. Hier sollen die Treibernamen und Ports in Dropdownmenüs sichtbar werden (siehe Bilder im Anhang)

namespace GateControl.ControlCenter
{
 

    public partial class Wizard : Form
    {
// Im Moment ist das Ganze noch mit einfachen strings gelöst
        string[] GeraeteAdam = { "Adam6050""Adam6050W""Adam6051""Adam6051W""Adam6052""Adam6055""Adam6060""Adam6060W""Adam6066" };
        string[] GeraeteAxis = { "Axis247S""Axis7001" };
        int command = 0;
        
        
        Form AufrufendeForm; // Globale Variable im Form2 
        public Wizard(Form f, int c)
        {
            InitializeComponent();
            AufrufendeForm = f;   // Zuordnung der Referenz
            command = c;

/* Wie ihr auf den Bildern sehen könnt gibt es verschiedene Kommandos und nicht jeder Treiber / jedes Gerät  kann für ein Kommando benutzt werden. Deshalb sind diese gekennzeichnet:
        public ADAM6050A3()
        {
            this.adamTypeName = "Adam6050";
        }
Das A3 bei ADAM6050A3 steht somit für den Befehl 3
*/

        }


Moderiert von user profile iconKha: Quote- durch C#-Tags ersetzt
Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Do 12.01.2012 um 13:18
Einloggen, um Attachments anzusehen!