Hilfe bei serieller Schnittstelle
-
- Beiträge: 188
- Registriert: Fr 18. Jan 2013, 09:29
- OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
- CPU-Target: Celeron
Re: Hilfe bei serieller Schnittstelle
Again what learned !
mschnell:
Das angeschlossene Gerät ist eine Platine mit einem Mikrokontroller. bzw. Eine Kette davon. An jeder Platine hängen 8 Gleiskontakte. Sobald sich da irgend etwas Ändert (Zug fährt) wird die Platinenadresse hinzugefügt und an die nächste Platine weiter gegeben. Diese reicht das dann wiederum an die nächste weiter, und fügt ihren eigenen Kontaktstatus hinzu. Die Letzte Platine hat dann einen RS232-Wandler, und gibt es an den PC per ComPort weiter.
Wenn sich also auf der Anlage nichts rührt, kommen auch keine Meldungen.
Es gibt da noch 2 Weitere Geräte.
1. Der Wandler , der die Fahrinfomationen in die Digitalsteuerung umwandelt. Das hat eine Software, die ich nicht geschrieben habe. Ich habe zwar den Quellcode, möchte diesen aber nicht ändern. Macht auch nix, den schließe ich fest an COM1 an.
2. Da wäre noch ein Handregler, Den baue ich selbst, und schreibe auch das Programm dazu.
Auch die Kontaktplatinen habe ich selbst gebaut und die Software dafür geschrieben.
Es geht hier also nur um die Zuordnung der Geräte zum COM-Port. Das Ganze soll ja mal auf einem alten Notebook laufen und da könten beim Anschließen leicht die Kabel vertauscht werden.
Die Abfrage der Kontakte und deren Auswertung passiert dann im laufenden Betrieb per Timer in einem eigenen Thread.
Ich könnte natürlich hier noch etwas reinbasteln, das von den Geräten immer wieder mal ein Lebenszeichen anfordert, ist aber bei dem momentanen Entwicklungsstand nachrangig.
Gruß Fritz
mschnell:
Das angeschlossene Gerät ist eine Platine mit einem Mikrokontroller. bzw. Eine Kette davon. An jeder Platine hängen 8 Gleiskontakte. Sobald sich da irgend etwas Ändert (Zug fährt) wird die Platinenadresse hinzugefügt und an die nächste Platine weiter gegeben. Diese reicht das dann wiederum an die nächste weiter, und fügt ihren eigenen Kontaktstatus hinzu. Die Letzte Platine hat dann einen RS232-Wandler, und gibt es an den PC per ComPort weiter.
Wenn sich also auf der Anlage nichts rührt, kommen auch keine Meldungen.
Es gibt da noch 2 Weitere Geräte.
1. Der Wandler , der die Fahrinfomationen in die Digitalsteuerung umwandelt. Das hat eine Software, die ich nicht geschrieben habe. Ich habe zwar den Quellcode, möchte diesen aber nicht ändern. Macht auch nix, den schließe ich fest an COM1 an.
2. Da wäre noch ein Handregler, Den baue ich selbst, und schreibe auch das Programm dazu.
Auch die Kontaktplatinen habe ich selbst gebaut und die Software dafür geschrieben.
Es geht hier also nur um die Zuordnung der Geräte zum COM-Port. Das Ganze soll ja mal auf einem alten Notebook laufen und da könten beim Anschließen leicht die Kabel vertauscht werden.
Die Abfrage der Kontakte und deren Auswertung passiert dann im laufenden Betrieb per Timer in einem eigenen Thread.
Ich könnte natürlich hier noch etwas reinbasteln, das von den Geräten immer wieder mal ein Lebenszeichen anfordert, ist aber bei dem momentanen Entwicklungsstand nachrangig.
Gruß Fritz
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Hilfe bei serieller Schnittstelle
Eins von beidem macht keinen Sinn.Die Abfrage der Kontakte und deren Auswertung passiert dann im laufenden Betrieb per Timer in einem eigenen Thread.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Hilfe bei serieller Schnittstelle
Also völliges Chaos. Da halte ich mich raus.haderlump hat geschrieben: Das hat eine Software, die ich nicht geschrieben habe. Ich habe zwar den Quellcode, möchte diesen aber nicht ändern. ... per Timer in einem eigenen Thread
Ein typischer Pascal-Timer (also ein TTimer-Objekt) geht mit einem (Worker-) Thread gar nicht, sondern nur im Mainthread der Anwendung. (Hier also noch mehr Chaos...)
-Michael
-
- Beiträge: 188
- Registriert: Fr 18. Jan 2013, 09:29
- OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
- CPU-Target: Celeron
Re: Hilfe bei serieller Schnittstelle
Nein da ist kein Chaos dran.
Alsonochmal der Reihe nach. beim Programmstart muß ich erst mal testen, welche Schnittstelle welchem Gerät zugeordnet ist.
Ich teste dazu die Schnittstellen COM2 bis COM9. Also ich versuche sie zu öffnen. Klappt das, schicke ich ein Zeichen hinaus. Die beiden Geräte antworten auf verschiedene Weise. Daran kann das Programm dann erkennen, welches Gerät wo angeschlossen ist.
Antwortet ein Gerät nicht, ist es einfach nicht angeschlossen oder Deffekt. Dann kann das Programm die Modellbahn nicht steuern, und wird mit entsprechender Fehlermeldung beendet
Ist Alles OK, dann kann es los gehen. Die Oberfläche wird aufgebaut und der Nutzer kann verschiedene Aktionen auslösen.
Gleichzeitig wird der Timer, der für die Kontaktüberwachung zuständig ist, gestartet. Dieser bringt die Procedur onTimer mit. Dort drin steht dann, wie mit den eingehenden Kontaktinformationen zu verfahren ist. Das Auslösen des Timers startet automatisch einen eigenen Thread, so dass ich den nicht selbst starten muss.
Es mag ja sein, dass meine Programmiererei nicht dem professionalen Standard entspricht. Ich will das aber auch nicht verkaufen, sondern damit nur meine Modellbahn steuern. Und dass es so schlecht nicht ist, sehe ich auch daran, dass ich nach einer Programmierpause von fast 2 Jahren mich innerhalb einer Viertelstunde wieder zu Hause gefühlt habe. Und das , obwohl die Aufgabenstellung mit der Zeit immer komplexer geworden ist. Es fällt einem halt immer wieder was neues ein, was man da noch machen kann.
Ich bin und bleibe Amateur, habe mir das Programmieren selbst beigebracht, und bin nebenbei gesagt schon ein bisschen stolz darauf, was mein Programm so alles kann. Da sind schon Funktionalitäten drin, die ich bei käuflichen Programmen vergeblich suche.
Dass ich soweit gekommen binn, verdanke ich auch Euch hier in diesem Forum. Da gibt es immer wieder Knackpunkte, wo ich in meinen schlauen Büchern keine Antwort gefunden habe, hier aber schon.
Leider kann ich hier nur die Rolle des passiven Users spielen, zur aktiven Mitarbeit hab ich den "Arsch einfach zu weit unten".
Ich bewundere auch immer euren Eifer, schließlich macht die Beratung ja auch Arbeit, man muss sich in den Code reindenken, und kennt möglicherweise die Intention des Fragers nicht.
Also nochmal Danke.
Gruß Fritz
Alsonochmal der Reihe nach. beim Programmstart muß ich erst mal testen, welche Schnittstelle welchem Gerät zugeordnet ist.
Ich teste dazu die Schnittstellen COM2 bis COM9. Also ich versuche sie zu öffnen. Klappt das, schicke ich ein Zeichen hinaus. Die beiden Geräte antworten auf verschiedene Weise. Daran kann das Programm dann erkennen, welches Gerät wo angeschlossen ist.
Antwortet ein Gerät nicht, ist es einfach nicht angeschlossen oder Deffekt. Dann kann das Programm die Modellbahn nicht steuern, und wird mit entsprechender Fehlermeldung beendet
Ist Alles OK, dann kann es los gehen. Die Oberfläche wird aufgebaut und der Nutzer kann verschiedene Aktionen auslösen.
Gleichzeitig wird der Timer, der für die Kontaktüberwachung zuständig ist, gestartet. Dieser bringt die Procedur onTimer mit. Dort drin steht dann, wie mit den eingehenden Kontaktinformationen zu verfahren ist. Das Auslösen des Timers startet automatisch einen eigenen Thread, so dass ich den nicht selbst starten muss.
Es mag ja sein, dass meine Programmiererei nicht dem professionalen Standard entspricht. Ich will das aber auch nicht verkaufen, sondern damit nur meine Modellbahn steuern. Und dass es so schlecht nicht ist, sehe ich auch daran, dass ich nach einer Programmierpause von fast 2 Jahren mich innerhalb einer Viertelstunde wieder zu Hause gefühlt habe. Und das , obwohl die Aufgabenstellung mit der Zeit immer komplexer geworden ist. Es fällt einem halt immer wieder was neues ein, was man da noch machen kann.
Ich bin und bleibe Amateur, habe mir das Programmieren selbst beigebracht, und bin nebenbei gesagt schon ein bisschen stolz darauf, was mein Programm so alles kann. Da sind schon Funktionalitäten drin, die ich bei käuflichen Programmen vergeblich suche.
Dass ich soweit gekommen binn, verdanke ich auch Euch hier in diesem Forum. Da gibt es immer wieder Knackpunkte, wo ich in meinen schlauen Büchern keine Antwort gefunden habe, hier aber schon.
Leider kann ich hier nur die Rolle des passiven Users spielen, zur aktiven Mitarbeit hab ich den "Arsch einfach zu weit unten".
Ich bewundere auch immer euren Eifer, schließlich macht die Beratung ja auch Arbeit, man muss sich in den Code reindenken, und kennt möglicherweise die Intention des Fragers nicht.
Also nochmal Danke.
Gruß Fritz
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Hilfe bei serieller Schnittstelle
Wenn die von Dir verwendete "Software" also kein "Programm", sondern ein "Tool" ist, das man in eigenen Programmen verwenden kann und das entsprechend dokumentiert ist, ist das natürlich wirklich kein Chaos, sondern ganz normal.
Wenn dieses Tool eine Klasse liefert, die "OnTimer" - Events (also im Mainthread) bietet, die Du dann implementieren kannst, ist das auch prima.
Natürlich darfst Du in Deinen Event-Handlern auch Threads starten (in Pascal-Speak also TThread-Tochter-Objekte instanziieren). Die laufen dann aber unabhängig von den Events (und der ganzen anderen Software) und müssen entsprechend synchronisiert werden !
Das muss gut geplant werden, sonst gibt es doch Chaos.
Erste Regel: " in der "Execute"-Funktion niemals versuchen, irgendetwas mit der Benutzer-Oberfläche machen !!! "
Zweite Regel: " Übergabe von Informationen an die Main-Thread Funktionalität mit "TThread.Synchronize", "TThread.Queue", TThreadList, etc !!!"
-Michael
Wenn dieses Tool eine Klasse liefert, die "OnTimer" - Events (also im Mainthread) bietet, die Du dann implementieren kannst, ist das auch prima.
Natürlich darfst Du in Deinen Event-Handlern auch Threads starten (in Pascal-Speak also TThread-Tochter-Objekte instanziieren). Die laufen dann aber unabhängig von den Events (und der ganzen anderen Software) und müssen entsprechend synchronisiert werden !
Das muss gut geplant werden, sonst gibt es doch Chaos.
Erste Regel: " in der "Execute"-Funktion niemals versuchen, irgendetwas mit der Benutzer-Oberfläche machen !!! "
Zweite Regel: " Übergabe von Informationen an die Main-Thread Funktionalität mit "TThread.Synchronize", "TThread.Queue", TThreadList, etc !!!"
-Michael
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Hilfe bei serieller Schnittstelle
Wir könntens ja auch "Personal App" taufen, dann haben wir noch mehr neusprech...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 188
- Registriert: Fr 18. Jan 2013, 09:29
- OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
- CPU-Target: Celeron
Re: Hilfe bei serieller Schnittstelle
Michael
Was du da schreibst, ist mir um 10 Stockwerke zu hoch. Sorry, ich hab gar nix kapiert. Da kann ich nicht mithalten, und das werde ich in meinem Alter (61) wohl auch nicht mehr lernen. Aber damit muß ich leben. Einem gestandenen Programmiere werden möglicherweise die Haare zu Berge stehen.
Mir ist aber vor allem wichtig dass das was ich mache gut funktioniert, und das tut es jetzt.
Die Execute-Funktion habe ich überhaupt übrigens nicht angerührt.
Die Initialisierung, die sehr umfangreich ist,erfolgt in der Funktion onCreate des Hauptformulars. da wird die ganze Speicherstruktur angelegt und aus verschiedenen Dateien mit Leben erfüllt. Hier wird praktisch die ganze Modellbahn mit all ihren Abhängigkeiten abgebildet. Und die Zuordnung der Com-Ports gehört hier eben auch dazu. Letztlich greifen alle Funktionen die das Programm bietet auf diese zentrale "Datenbank" zu. Die ganzen dynamischen Zustände (z.B wo ist welcher Zug, mit wie vielen Achsen ,Fahrtrichtungen etc. )werden aus Sicherheitsgründen laufend in kurzen Zeitabschnitten auf Datenträger gesichert. Und zwar jeweils in 2 Dateien, so dass bei einem Absturz (kam Gott sei dank noch nicht vor) während des Schreibens immer noch eine unversehrte Datei vorhanden ist.
Ich habe jetzt mal probeweise eine zusätzliche Com-Schnittstelle angesteckt. Die Com-Ports in Windows wurden dabei complett verschoben. Aber mein Programm hat alles einwandfrei zugeordnet. Die Bytes gehen an das richtige Port raus, und es wird vom richtigen Port empfangen. Was will ich mehr !
Mei Gott, jetzt ist das schon wieder ein Roman geworden.
Gruß Fritz
Was du da schreibst, ist mir um 10 Stockwerke zu hoch. Sorry, ich hab gar nix kapiert. Da kann ich nicht mithalten, und das werde ich in meinem Alter (61) wohl auch nicht mehr lernen. Aber damit muß ich leben. Einem gestandenen Programmiere werden möglicherweise die Haare zu Berge stehen.
Mir ist aber vor allem wichtig dass das was ich mache gut funktioniert, und das tut es jetzt.
Die Execute-Funktion habe ich überhaupt übrigens nicht angerührt.
Die Initialisierung, die sehr umfangreich ist,erfolgt in der Funktion onCreate des Hauptformulars. da wird die ganze Speicherstruktur angelegt und aus verschiedenen Dateien mit Leben erfüllt. Hier wird praktisch die ganze Modellbahn mit all ihren Abhängigkeiten abgebildet. Und die Zuordnung der Com-Ports gehört hier eben auch dazu. Letztlich greifen alle Funktionen die das Programm bietet auf diese zentrale "Datenbank" zu. Die ganzen dynamischen Zustände (z.B wo ist welcher Zug, mit wie vielen Achsen ,Fahrtrichtungen etc. )werden aus Sicherheitsgründen laufend in kurzen Zeitabschnitten auf Datenträger gesichert. Und zwar jeweils in 2 Dateien, so dass bei einem Absturz (kam Gott sei dank noch nicht vor) während des Schreibens immer noch eine unversehrte Datei vorhanden ist.
Ich habe jetzt mal probeweise eine zusätzliche Com-Schnittstelle angesteckt. Die Com-Ports in Windows wurden dabei complett verschoben. Aber mein Programm hat alles einwandfrei zugeordnet. Die Bytes gehen an das richtige Port raus, und es wird vom richtigen Port empfangen. Was will ich mehr !
Mei Gott, jetzt ist das schon wieder ein Roman geworden.
Gruß Fritz
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Hilfe bei serieller Schnittstelle
Völliger Quatsch.haderlump hat geschrieben: Da kann ich nicht mithalten, und das werde ich in meinem Alter (61) wohl auch nicht mehr lernen.
Ich bin genau so alt und lerne täglich dazu: Computer, Klavierspielen, Reiten.
(Auch wenn andere Forum-Teilnehmer das vermutlich bestreiten

-Michael
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Hilfe bei serieller Schnittstelle
Um das Projekt weiter zu entwicklen muss Du auch wissen wie und warum. Sonst läufst Du mit Sicherheit in eine Sackgasse.haderlump hat geschrieben:Mir ist aber vor allem wichtig dass das was ich mache gut funktioniert, und das tut es jetzt.
Dann hast Du auch keinen Thread.haderlump hat geschrieben:Die Execute-Funktion habe ich überhaupt übrigens nicht angerührt.
Das ist überhaupt kein Problem.-Michaelhaderlump hat geschrieben:Mei Gott, jetzt ist das schon wieder ein Roman geworden.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Hilfe bei serieller Schnittstelle
Wieso, beim Reiten und Klavierspielen können wir das doch gar nicht beurteilen.(Auch wenn andere Forum-Teilnehmer das vermutlich bestreiten)
Ansonsten find ichs aber schon charmant wenn man seine Grenzen kennt

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Hilfe bei serieller Schnittstelle
Meinst Du das:Christian hat geschrieben:Doch gibts, hab ich hier irgendwann mal gepostet.
http://www.lazarusforum.de/viewtopic.ph ... hron#p9892
Wenn man da statt
// Synchronize(@DataRecived);
DataRecived;
einen Mechanismus einbaut, der mit Queue() ein asynchrones Event im Mainthread schmeißt, das dafür sorgt dass die Daten sauber proportioniert einem von dort aufgerufenen User-Event ankommen ist das sicher ein guter Start für eine allgemein einsetzbare Komponente.
-Michael
-
- Beiträge: 188
- Registriert: Fr 18. Jan 2013, 09:29
- OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
- CPU-Target: Celeron
Re: Hilfe bei serieller Schnittstelle
Michael.
Alles hab ich nicht verstanden, aber doch das Meiste. und bis jetzt hat das auch immer ausgereicht.
Ich meine hier vor allem die Programmteile, die von Lazarus angelegt werden. Da lass ich auch absolut die Finger von.
Das was ich selbst programmiert habe, verstehe ich natürlich zu 100%.
Das Programm ist, gut strukturiert, die Funktionen sind verständlich, und auch nach größeren Pausen hab ich sofort wieder hineingefunden.
So ist es mir vor allem Wichtig, dass ich keine abgekürzten Variablen- und Funktionsbezeichnungen verwende, sondern alle mit klaren Namen ausschreibe. Auch wenn sie dann etwas länger ausfallen. Das hat sich sehr bewährt, und macht viele Kommentare überflüssig.
Zur Execute-Funktion: vielleicht meinen wir nicht das Selbe.
Ich meine den Teil. wo der Befehl "application.run" vorkommt, und da hab ich nix hineingeschrieben.
Es ist für einen Amateur echt nicht einfach sich das alles anzueignen.Da gibt es tausende Begrife, Klassen, etc. und weit und breit keinen Bekannten (ausser hier im Forum) der einem dann weiter helfen kann.
In Büchern, (und da habe ich früher schon reichlich Geld ausgegeben) steht auch nur das Wichtigste.
Dazu kommt noch, dass ich nicht unendlich Zeit habe, und diese auch noch mit meinen anderen Hobies teilen muss.
Ich habe vor ca 35 Jahren angefangen zu programmieren, Erst Assembler (Z80, 68000) dann Basic, dann C, C++, und schlißlich Delphi bzw, jetzt Lazarus. Hier fühle ich mich von allen Programmierumgebungen mit Abstand am wohlsten.
Gruß Fritz
Alles hab ich nicht verstanden, aber doch das Meiste. und bis jetzt hat das auch immer ausgereicht.
Ich meine hier vor allem die Programmteile, die von Lazarus angelegt werden. Da lass ich auch absolut die Finger von.
Das was ich selbst programmiert habe, verstehe ich natürlich zu 100%.
Das Programm ist, gut strukturiert, die Funktionen sind verständlich, und auch nach größeren Pausen hab ich sofort wieder hineingefunden.
So ist es mir vor allem Wichtig, dass ich keine abgekürzten Variablen- und Funktionsbezeichnungen verwende, sondern alle mit klaren Namen ausschreibe. Auch wenn sie dann etwas länger ausfallen. Das hat sich sehr bewährt, und macht viele Kommentare überflüssig.
Zur Execute-Funktion: vielleicht meinen wir nicht das Selbe.
Ich meine den Teil. wo der Befehl "application.run" vorkommt, und da hab ich nix hineingeschrieben.
Es ist für einen Amateur echt nicht einfach sich das alles anzueignen.Da gibt es tausende Begrife, Klassen, etc. und weit und breit keinen Bekannten (ausser hier im Forum) der einem dann weiter helfen kann.
In Büchern, (und da habe ich früher schon reichlich Geld ausgegeben) steht auch nur das Wichtigste.
Dazu kommt noch, dass ich nicht unendlich Zeit habe, und diese auch noch mit meinen anderen Hobies teilen muss.
Ich habe vor ca 35 Jahren angefangen zu programmieren, Erst Assembler (Z80, 68000) dann Basic, dann C, C++, und schlißlich Delphi bzw, jetzt Lazarus. Hier fühle ich mich von allen Programmierumgebungen mit Abstand am wohlsten.
Gruß Fritz
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Hilfe bei serieller Schnittstelle
@michael, ist in der aktuellen Version schon so 
https://github.com/cutec-chris/promet-e ... omport.pas

https://github.com/cutec-chris/promet-e ... omport.pas
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Hilfe bei serieller Schnittstelle
Das sieht ja gut aus !
Kannst Du das irgendwo "offiziell" als Serien-Port-Unit ablegen und mit ein bisschen Doku versehen, so dass man es leicht findet und einsetzen kann ?
-Michael
Kannst Du das irgendwo "offiziell" als Serien-Port-Unit ablegen und mit ein bisschen Doku versehen, so dass man es leicht findet und einsetzen kann ?
-Michael
Zuletzt geändert von mschnell am So 13. Jul 2014, 11:57, insgesamt 2-mal geändert.
-
- Beiträge: 188
- Registriert: Fr 18. Jan 2013, 09:29
- OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
- CPU-Target: Celeron
Re: Hilfe bei serieller Schnittstelle
Halo zusammen
Jetzt hab ich nochmal eine Frage, die aber nur mittelbar mit diesem Thema zusammenhängt.
Ich bin ja nun schon weiter mit meinem Programm. Aber ich muß bei jedem Testlauf mit dem Terminalprogramm die externe Hardware simulieren.
Ich würde gerne zu Testzwecken die Hardwareerkennung überspringen, stassdessen den COM-Port fest zuordnen.
Dazu würde ich gerne Die Compilerdirektiven
$DEFINE debug,
$IFDEF debug
$ELSE
$ENDIF
verwenden. Aber egal wo ich diese bisher hingeschrieben kommt die Fehlermeldung "illegal expression"
Wie kann ich denn diese Direktiven korrekt anwenden???
Gruß Fritz
Jetzt hab ich nochmal eine Frage, die aber nur mittelbar mit diesem Thema zusammenhängt.
Ich bin ja nun schon weiter mit meinem Programm. Aber ich muß bei jedem Testlauf mit dem Terminalprogramm die externe Hardware simulieren.
Ich würde gerne zu Testzwecken die Hardwareerkennung überspringen, stassdessen den COM-Port fest zuordnen.
Dazu würde ich gerne Die Compilerdirektiven
$DEFINE debug,
$IFDEF debug
$ELSE
$ENDIF
verwenden. Aber egal wo ich diese bisher hingeschrieben kommt die Fehlermeldung "illegal expression"
Wie kann ich denn diese Direktiven korrekt anwenden???
Gruß Fritz