Entwickler-Ecke

C# - Die Sprache - Klasse erstellen für Konfig. Messkarte


grisu2611 - Sa 06.10.07 17:06
Titel: Klasse erstellen für Konfig. Messkarte
Hallo,
blutiger Anfänger in sowas!!!

Möchte, um meinen Programmcode zu minimieren, die Config für meine Messkarte in eine Klasse stecken! Funkt das?!

Hier mal der Code den ich dafür brauche


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:
BuffersCompleted = 0;

            // Setzt alle vorher zugewiesenen Buffer frei falls wir die Zahl oder die Größe 
            // der Buffer erhöhen
            ainSS.BufferQueue.FreeAllQueuedBuffers();

            daqBuffers = new OlBuffer[anzahlVonBuffern];

            // Erstellt die Buffers zum speichern der Roh Daten
            // Plaziert die Buffers in der Schlange vom Analog Input Subsystem
            for (int i = 0; i < anzahlVonBuffern; ++i)
            {
                daqBuffers[i] = new OlBuffer(1250, ainSS); //1250= Anzahl der Samples pro Buffer

                ainSS.BufferQueue.QueueBuffer(daqBuffers[i]);
            }

            // Setzt den Datenfluß auf Kontinuierlich für den buffered I/O
            ainSS.DataFlow = DataFlow.Continuous;

            // Aktualisieren des internen Frequenzgebers
            ainSS.Clock.Frequency = 5000;

            // Reinigen der AnalogInputSubsystem Kanal Liste
            ainSS.ChannelList.Clear();

            
            // Fügt einen Kanal der Kanal Liste hinzu
            ainSS.ChannelList.Add(0);
            ainSS.ChannelList.Add(1);
            ainSS.ChannelList.Add(8);

            ainSS.ChannelType = ChannelType.SingleEnded;

            // Das Subsystem wird mit den vorhergegangen Einstellungen konfiguriert
            ainSS.Config();

            // Wenn ein Buffer nicht in der Bufferschlange steht, überspringe ihn
            for (int i = 0; i < anzahlVonBuffern; i++)
            {
                if ((daqBuffers[i].State == OlBuffer.BufferState.Idle) ||
                    (daqBuffers[i].State == OlBuffer.BufferState.Completed))
                    ainSS.BufferQueue.QueueBuffer(daqBuffers[i]);
            }

            // Startet einlesen der Daten
            ainSS.Start();


Da es ja kein SingleValue aufruf ist werden auch noch diverse HandleQueueStopped HandleQueueDone usw Unterprogramme geschrieben!
Kann ich die auch in der Klasse realisieren oder muss ich das im Hauptprogramm machen?

Danke für eure Mühen im Vorraus!!!

Gruß


grisu2611 - Mo 08.10.07 09:39

Fehlt wieder etwas in meinen Angaben oder keine ne Idee? :cry:


Christian S. - Mo 08.10.07 11:22

Es ist irgendwie nicht wirklich klar, was die Klasse denn machen soll. :nixweiss: (Und was ein "HandleQueueStopped HandleQueueDone Aufruf" sein soll :gruebel:)