RS232 XBTools [Erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

RS232 XBTools [Erledigt]

Beitrag von ramses »

Hi

vor der Version 2 von Xbase++ waren die XBTools oft Ursache verschiedener Programmabstürze und vielerlei Probleme. Dies hat damals auch mich dazu gebracht auf die XBTools zu verzichten und Ersatzfuntionen der daraus verwendeten Funktionen zu schreiben. Jedenfalls hatte ich danach gerade in Multi-Thread Progammen keine Probleme mehr.


Laufen die Xbasetools nun in der Version 2 besser oder soll noch immer darauf verzichtet werden?

Ich muss nun in einem bestehenden Programm einen neuen separaten Thread einbauen der im Hintergrund über RS232 mit einer Steuerung kommuniziert.

Die xbase++ Tools hätten die benötigten RS232 Funktionen.

Wurden die Tools in Version 2 auch überarbeitet oder ist es besser noch immer auf diese zu Verzichten? Wer hat schon Erfahrungen gesammelt?

CU Carlo
Zuletzt geändert von ramses am Di, 10. Nov 2015 5:34, insgesamt 1-mal geändert.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: RS232 XBTools

Beitrag von Rudolf »

Hallo,
habe ein paar Dinge mit RS233 und den Tools gemacht wie Solariumsteuerung, Zutrittskontroll- und Zeiterfassungsterminals, Waagen etc, hatte nie ein Problem damit, auch mit keinen anderen Funktionen der Tools.
Grüße
Rudolf
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: RS232 XBTools

Beitrag von ramses »

@Rudolf

bei der Entwicklung eines Online System (WebServer) machten einige Funktionen der Tools zusammen mit Multi-Threading erhebliche Probleme. Mir wurde damals geraten auf die Tools zu verzichten. Mit einigem Aufwand habe ich dann Ersatzfunktionen geschrieben und die Tools entfernt. Damit waren auch die Probleme erledigt.

Bis dahin hatte ich auch keine Probleme mit den Tools. Seit dem allerdings auch nicht mehr ....... ich habe Sie seit Jahren nicht mehr angefasst.

Ich suche mir monentan die API-Calls von Windows zusammen, vielleicht geht RS232 Komunikation damit .....



Cu Carlo
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: RS232 XBTools [Erledigt]

Beitrag von ramses »

Hi

ich verwende jetzt API Calls zum Senden/Empfangen über die Serielle Schnittstelle. Somit könnte ich weiterhin auf die XBTools verzichten.

Cu Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: RS232 XBTools [Erledigt]

Beitrag von Rudolf »

Hallo Carlo,
gut zu wissen dass es auch eine andere Lösung gibt. Weisst Du welche Funktionen der Tools Probleme beim Multithreading gemacht haben ?
Grüße
Rudolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: RS232 XBTools [Erledigt]

Beitrag von Tom »

Wir haben eine vor vielen Jahren implementierte Funktionalität, die mit propreitären Chipkartenlesern über die serielle Schnittstelle kommuniziert - und tatsächlich auch noch zwei oder drei Kunden, die diese Technik verwenden, obwohl wir längst mehrere Alternativen im Portfolio haben. Anyway, das arbeitet auch in einer Multithreading-Applikation via XbTools offenbar fehlerfrei, aber eine serielle Schnittstelle ist quasi per Definition nicht multithreadingfähig. Ein COM-Port kann immer nur von einer Instanz aus geöffnet sein. Es hätte auch wenig Sinn, wenn mehrere Apps oder Threads einer einzigen App mit dem selben Gerät reden würden.
Herzlich,
Tom
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: RS232 XBTools [Erledigt]

Beitrag von Rudolf »

Hallo,
es könnte sein dass mehrere Threads verschiedene Schnittstellen ansprechen, aber ich denke das kommt eher selten vor. Bei mir werden die Terminals über RS485 angesprochen, jedes hat seine Adresse, also keine Notwendigkeit für mehrere Threads. Ich denke auch dass es gar nicht geht die Schnittstelle zwei mal zu öffnen, das müsste schon das Betriebssystem verhindern.
Grüße
Rudolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: RS232 XBTools [Erledigt]

Beitrag von Tom »

Richtig. ComOpen() - in welcher Konstellation auch immer - schlägt fehl, wenn der Port bereits verwendet wird. Aber, wie gesagt - wir haben Ende der Neunziger diese Technik aus Clipper migriert, und es gibt immer noch Kunden, die sie in aktuellen Topologien in einer multithreadingfähigen Software verwenden, völlig problemlos.
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: RS232 XBTools [Erledigt]

Beitrag von ramses »

@Rudolf

das Programm ist ein Webserver in welchem jede Anfrage einen Thread benutzt. (xb2net)
Probleme hatte ich solange die Bit-, Datums-, String- und File- Funtionen der Tools benutzt wurden. Welche Funtionen das Problem waren habe ich nie herausgefunden.

Ich erhielt damals (vor Jahren) den Tip auf die Tools zu verzichten, diese seinen noch nicht so ganz Multithread fähig. Mit einigem Aufwand habe ich dann Ersatz für die aus den Tools verwendeten Funktionen in Xbase geschrieben. Seit der Version in welcher ich xbtbase?.Lib durch meine Ersatzfunktionen ersetzt habe hatte das Programm nun seit Jahren auch wärend Intensiver Nutzung nie mehr wieder einen Hänger oder Absturz. Davor oft mehrere pro Tag.

Richtig ein Com-Port lässt sich nur von einem Programm (Thread) öffnen. Zur Zeit nutze ich 4 Thread's welche jeweils über eine RS232/485 mit entsprechenden Geräten kommunizieren.


Cu Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: RS232 XBTools [Erledigt]

Beitrag von Rudolf »

Hallo Carlo,
danke für die Infos, ich verwende eine uralte Version von 2006, ich denke es gibt keine neuere Version. Meine Programme laufen trotz Tools und Multithreading teilweise Jahre durchgehend ohne Problem, sind teilweise sehr komplex, wundert mich selbst dass alles so stabil ist. Bei Stringfunktionen kann ich mir nicht vorstellen dass Multithreading ein Problem ist, bei der seriellen Kommunikation würde ich jedoch auch beim ersten Problem eine andere Lösung suchen. Gut zu wissen dass Du eine Lösung dafür hast.
Grüße
Rudof
Antworten