Autor Beitrag
grisu2611
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


C/C++; C# (neu)
BeitragVerfasst: Sa 06.10.07 17:06 
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

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:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


C/C++; C# (neu)
BeitragVerfasst: Mo 08.10.07 09:39 
Fehlt wieder etwas in meinen Angaben oder keine ne Idee? :cry:
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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:)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".