Anwendungsbereiche

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Unimatrix Zero
Beiträge: 48
Registriert: 13.10.2004 23:47

Beitrag von Unimatrix Zero »

Kaeru Gaman hat geschrieben:Ein anständiges Tut für die Nutzung von Interfaces würde da schon einiges helfen...
Gute Idee :allright:
cya
Unimatrix Zero

<= Die Welt um mich herum ist in mir.(Blaise Pascal) =>
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Ein Interface ist nichts weiter als eine Maske für einen Speicherbereich
bestückt mit Pointern zu Funktionen :freak:.
Bild
Unimatrix Zero
Beiträge: 48
Registriert: 13.10.2004 23:47

Beitrag von Unimatrix Zero »

Gibts da im IN irgendwo eine Erklärung mit der ein Anfänger wie ich was anfangen könnte?
Mit Interfaces hatte ich bisher noch nie wirklich was zu tun.
cya
Unimatrix Zero

<= Die Welt um mich herum ist in mir.(Blaise Pascal) =>
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

MVXA hat geschrieben:Ein Interface ist nichts weiter als eine Maske für einen Speicherbereich
bestückt mit Pointern zu Funktionen :freak:.
Na dann, erklär mal. Ich würde mich auch sehr gerne dafür interessieren.
Ein Interface mit Objekten über eine AD_USB2XX.OCX habe ich ja schon, die sich aber nicht über den Interfacegenerator, ausser einen auskommentierten Text, auslesen lässt.

DarkDragon hat sie schon gesehen :mrgreen:

Dazu, habe ich eine Beschreibung in Textform, die ich gleich mal hier poste.
Ich habe sogar den Hersteller zur Hardware angeschrieben, ob man nicht über die DLL direkt das progen könne. Da bekam ich nocheinmal die OCX mit der Readme.TXT geschickt.
:freak:
Beschreibung des Steuerelementes AD_USB.OCX
===========================================

Bei der Installation von Monitor wird auf Ihrem System
automatisch ein ActiveX-Steuerelement installiert und registriert,
mit dem Sie mit selbst entwickelter Software auf des Gerät zugreifen
können.
Dieses Steuerlement beinhaltet auch den Windows-Treiber, der WDM-
konform für die Betriebssysteme Win98 und Win2000 realisiert ist.

Dieses Steuerelement kann in Ihren eigenen Programmen benutzt werden.
Das Steuelement wurde in VC++ Version 6 entwickelt, und kann in allen
Entwicklungsumgebungen eingesetzt werden, die Steuerelemente
unterstützen.

Beschreibung der Methoden und Eigenschaften
===========================================

1. BOOL Scan (short Adr)
Mit der Methode Scan kann ermittelt werden, ob ein AD-USB am
PC angeschlossen ist. Es wird nach dem Gerät mit der überge-
benen Adresse gesucht. Der zulässige Bereich für Adr liegt
zwischen 0 und 126. Wird ein Gerät unter dieser Adr gefunden
liefert die Methode TRUE. Mit Scan können auch mehrere AD-USBs
am PC lokalisiert werden. Diese Methode muß immer zuerst benutzt
werden, bevor mit einem Gerät kommuniziert werden kann.
Bei allen nachfolgenden Methoden und Eigenschaften muß die Adresse
des Gerätes als 1. Parameter übergeben werden.

2. short GetSerialNr (short Adr)
Mit dieser Methode können Geräte identifiziert werden, falls
mehrere Geräte gleichzeitig am PC betrieben werden. Die Geräte
müssen vorher mit Scan gefunden worden sein.

3. short GetDeviceType (short Adr)
Mit dieser Methode kann unterschieden werden, welcher Gerätetyp
unter übergebener Adr gefunden wurde. Rückgaben 1 oder 2.

4. BOOL GetError (short Adr)
Nach jeder Kommunikation mit dem AD-USB kann überprüft werden,
ob die Kommunikation erfolgreich war. Liefert diese Methode die
Rückgabe TRUE, so liegt eine Kommunikationsstörung zwischen Gerät
und PC vor.

5. short DigIO (short Adr, short NewValue)
Übermittelt die Signalzustände der digitalen Ein-/Ausgänge als
short zwischen PC und AD-USB.

6. long AnalogIO (short Adr, short Cha, long NewValue)
Übermittelt die Signalzustände der analogen Ein-/Ausgänge als
long zwischen PC und AD-USB. Cha ist die Kanalnummer und muß bei
den analogen Eingängen zwischen 0 und 7 liegen, bei den analogen
Ausgängen 0 oder 1.

Meßwert Ergebnis AD-USB 3
10V ca. 4000
0V 2048
-10V ca. 100


7. double AnalogVoltage (short Adr, short Cha, double NewValue)
Um sich die Unterscheidung der Gerätevarianten zu erleichtern und den
Spannungswert der Ein- und Ausgänge direkt in Volt bearbeiten kann diese
Eigenschaft benutzt werden. Sie arbeitet identisch zu AnalogIO, aber die
Ein-/Ausgangswerte werden als double-Wert direkt in Volt ausgetauscht.

8. double ReadAnalogVoltage(short DeviceNr, short Channel)
Liest den Eingangskanal aus dem Steuerelement (nicht aus dem AD-USB),
ohne einen Datenaustausch mit dem AD-USB durchzuführen. Diese Methode
empfielt sich um nach dem Aufruf von DataIO (siehe unten) die Werte
möglichst schnell einzulesen.

9. short ReadDigIn(short DeviceNr)
Liest die digitalen Eingangskanäle aus dem Steuerelement (nicht aus dem AD-USB),
ohne einen Datenaustausch mit dem AD-USB durchzuführen. Diese Methode
empfielt sich um nach dem Aufruf von DataIO (siehe unten) die Werte
möglichst schnell einzulesen.

10. void WriteAnalogVoltage(short DeviceNr, short Channel, double Voltage)
Schreibt einen Ausgangswert in das Steuerelement. Der Wert wird nur im
Steuerelement gespeichert, nicht an das AD-USB übertragen. Beim nächsten
Aufruf von DataIO wird der Wert am Analogausgang des Gerätes sichtbar.

11. void WriteDigOut(short DeviceNr, short Value)
Schreibt die digitalen Ausgangswerte in das Steuerelement. Der Wert wird nur im
Steuerelement gespeichert, nicht an das AD-USB übertragen. Beim nächsten
Aufruf von DataIO wird der Wert an den digitalen Ausgängen des Gerätes sichtbar.

12. void DataIO(short DeviceNr)
Es wird ein kompletter Datenaustausch zwischen dem PC und dem AD-USB
durchgeführt. Die Daten, die mit den Methoden 10 und 11 vorher in dem
Steuerelement gespeichert wurden, werden zum Gerät übermittelt. Gleichzeitig
erhält der PC mit dem Datenaustausch alle Eingangswerte des Gerätes. Diese
Werte sind dann mit den Methoden 8 und 9 aus dem Steuerlement entnehmbar, ohne
einen weiteren Austausch durchzuführen.
Um möglichst hohe Datendurchsätze zu erzielen, empfielt es sich die Methoden
8 bis 10 zu verwenden.

13. void Close (void)
Die Verbindung zu allen geöffneten Geräten wird geschlossen.
Ich vermute mal, das sind die Methoden und Objekte zur OCX.

Und wie geht es dann weiter? Z.B. so?

Code: Alles auswählen

Interface Ad_USB 
  Scan(Adr)
  GetSerialNr(Adr)
  GetDeviceType(Adr)
  GetError (Adr)
  DigIO (Adr,NewValue)
  AnalogIO (Adr,Cha,NewValue)
  AnalogVoltage (Adr, Cha, NewValue)
  ReadAnalogVoltage(DeviceNr, Channel)
  ReadDigIn(DeviceNr) 
  WriteAnalogVoltage(DeviceNr, Channel, Voltage)
  WriteDigOut(DeviceNr, Value)
  DataIO(DeviceNr)
  Close ()
EndInterface
Danach habe ich irgendwo gelesen mit cocreate... oder ähnlich.
Achja, die OCX ist durch das Setup ins System eingebunden. Wo bzw. welche Werte muss man da jetzt für die CSLID suchen?

Und da hört das Wissen was man sich im alten Archiv durchlesen konnte wieder auf. Ein richtiges Tut wäre echt schön, damit man anhand eines Beispiels sowas nachmachen könnte. Also ich würde mich freuen, wenn ich dieses ActiveX-Steuerung in Pb benutzen könnte.
Doch leider habe ich keinen gefunden, der mir weiterhelfen kann.

Im OLE/COM-Viewer der SDK sieht das sehr schön aus. Man findet dort alles schön grafisch aufgelistet über diese OCX wieder.
Vielleicht wäre es in naher Zukunft über den Visualdesigner möglich dort Steuercontrols, die in Windows angemeldet wurden auch in einen PB-source umzuwandeln so das man sie nutzen kann. :allright:

Gruss Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Unimatrix Zero
Beiträge: 48
Registriert: 13.10.2004 23:47

Beitrag von Unimatrix Zero »

Hi Falko,

dann könnte wir auch mal wieder das Projekt mit Excel aufnehmen ;) .
cya
Unimatrix Zero

<= Die Welt um mich herum ist in mir.(Blaise Pascal) =>
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Hi Unimatrix Zero,

stimmt genau :wink: . Wie du siehst, das ist auch sehr lange her, wo wir hier beide mal darüber diskutiert hatten, aber leider gescheitert waren, mangels PB-Möglichkeiten die so einfach sein könnten wie z.B. VCC oder VBA, wenn z.B. der VD dort angesetzt hätte. Also ähnlich wie der Ole-Com-Viewer die passenden Einträge anbietet, die dann als Interfaces und generierten Source dieser Objekte und Methoden, die ja vorgegeben sind, einzubauen. :wink:

Zwar ist das Fantasie, aber es wäre doch eine Überlegung wert.

MfG Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

[Ontopic]
Ich nutze PB auch für keinere Tools ohne aufw[e|ä]ndige Oberflächen und ohne COM/ActiveX - Nutzung.
Keine Spiele
[/Ontopic]

[Offtopic]
PB muss nicht unbedingt zur OOP sprache mutieren. Die schnittstelle zu Objekten muss aber viel besser werden!
(siehe Falkos Problem)
Visual Basic ist ja auch keine OOP sprache, man kann damit aber Prima Objekte nutzen.
[/Offtopic]
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

PAMKKKKK hat geschrieben:PB muss nicht unbedingt zur OOP sprache mutieren. Die schnittstelle zu Objekten muss aber viel besser werden!
(siehe Falkos Problem)
Visual Basic ist ja auch keine OOP sprache, man kann damit aber Prima Objekte nutzen.
full ack!
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

Kaeru Gaman hat geschrieben:
PAMKKKKK hat geschrieben:PB muss nicht unbedingt zur OOP sprache mutieren. Die schnittstelle zu Objekten muss aber viel besser werden!
(siehe Falkos Problem)
Visual Basic ist ja auch keine OOP sprache, man kann damit aber Prima Objekte nutzen.
full ack!
Tja kurz knapp und ....Was meint der kerl da doch noch gleich ?? Ach..... bestimmt nichts wichtiges, sonst würde er ja mehr schreiben!? :?
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Ich verwende PB zum Programmieren von normalen Programmen (Browser, Editor, etc.) :lol:
BildBildBildBild
Antworten