Seite 2 von 5

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 29.06.2011 01:44
von NicTheQuick
@Falko:

Du kannst die Diskette doch roh einlesen und dann in den Rohdaten nach den Quellcodes suchen oder mit binwalk dein Glück versuchen. 1,44 MB sind ja schnell durchforstet. :wink:

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 29.06.2011 08:58
von Falko
@NicTheQuick

Das Problem ist aber, wenn ich die Diskette ins Laufwerk vom PC einstecke, rattert das
Laufwerk los und irgendwann kommt die Meldung, das die Diskette nicht gelesen
werden könne und die Frage, ob man sie formatieren möchte.

Binwalk kenne ich nicht, was für ein Tool ist das und wo kann ich es herunterladen? :)

Gruß Falko

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 29.06.2011 09:04
von Kiffi
Falko hat geschrieben:Binwalk kenne ich nicht, was für ein Tool ist das und wo kann ich es herunterladen? :)
dürfte das hier sein: http://code.google.com/p/binwalk/
(erster Google-Treffer ;-))

Grüße ... Kiffi

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 29.06.2011 09:09
von Falko
Erster Google-Treffer ist gut :wink:
Meiner sah etwas anders aus, da ich direkt
auf den Download gekommen war. Nur wenn ich
richtig sehe, ist das alles für Linux.

[Edit]
Ich glaube es liegt an einem bestimmten Byte, was auf diesen älteren Disketten wohl nicht
vorhanden ist, und darum die zweite Fehlermeldung im folgenden Supportbericht von MS
auftaucht.

http://support.microsoft.com/kb/140060/de


[/Edit]

Gruß Falko

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 11.07.2011 17:50
von Darie
Hallo, ich bins nochmal :mrgreen:

Ich frage mich gerade, ob das benutzen der Timout-Befehle Sinn ergibt, wenn man vor einem "ReadSerialPortData" den InputBuffer mit AvailableSerialPortInput() überprüft. Mir ist halt nur aufgefallen, dass andere Programme meistens einen Möglichkeit anbieten, einen Timeoutwert einzustellen. Rufe ich ReadSerialPortData ohne eine Prüfung des Buffer auf, dann kehrt die Routine auch erst nach verstreichen des eingest. Timouts wieder zurück. Aber wenn man den Buffer vorher prüft, dürfte doch eigentlich garkein Timeout-Event enstehen ?!

Aldi

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 11.07.2011 20:05
von Falko
Wenn ich das richtig gelesen habe, kann man eine eigene Procedure
für dieses Timeout schreiben. Ich habe das nur noch nicht ausprobiert.

http://forums.purebasic.com/english/vie ... 13&t=39374

Gruß Falko

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 29.04.2012 22:09
von Falko
@Darie
Ich schaue gerade, weil ich bei mir mit Preferences was in meinem
TNC-Übertragungsprogramm mit Hardwarehandshake benötige, deinen
Code durch, wie du das mit RTS/CTS gemacht hast. Bei mir will ich
alle Möglichkeiten über die Comboboxen vorgeben und muss wohl einige
Bits mehr setzen bzw. abfragen.

Dabei fällt mir auf, das du folgendes für das STOP-Bit benutzt:
StopBits = Val(GetGadgetText(#ComboBox_25))
Da ich im englischen Forum bezüglich des Stopbits angefragt, habe,
warum man dort nicht genauso wie bei den PB-Constanten für Parity usw.
benutzt, bekam ich nur die Antwort von ABBAKlaus und Fred, das ich
Float für das Stopbit benutzen muss. Das ist dann aber für die Preferences
und Comboboxen umständlich. In der MSDN wird aber ein Longwert in der API
genutzt, was vieles einfacher macht. Man braucht dann eben nicht die Werte,
sondern die Constanten in den Preference speichern. Naja, man muss sich
den Eigenarten in PB fügen, auch wenn nur teilweise von der API was übernommen
wird, aber bei Stop eine Ausnahme gemacht wird.

Theoretisch müsste bei dir dann folgende Zeile heißen:
StopBits = Valf(GetGadgetText(#ComboBox_25))
wenn du für StopBit den Wert 1.5 nutzen möchtest, falls erforderlich.
Bei 1 und 2 fällt es eben nicht auf.

Hier der Link zur MSDN wo es anders als in PB ist:
http://msdn.microsoft.com/en-us/library/aa450503.aspx

Im Source kann man sehen, das dort longs für die floatwerte benutzt werden.
PortDCB.StopBits = ONESTOPBIT; // 0,1,2 = 1, 1.5, 2

Hier nochmal der Link ins englische Forum, wo ich bezüglich des Stopbits nachgehakt hatte.
http://www.purebasic.fr/english/posting ... 6&p=379218
Da mein englisch nicht das Allerbeste ist, habe ich das hier nochmal aufgeführt.

Gruß,
Falko

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 29.04.2012 23:42
von Darie
Danke Falko ! Den Bug hätte ich ohne deine Hilfe nicht gefunden :D

Hab auch direkt noch einen anderen Bug dadurch gefunden....

Mein Programm ist mittlerweile auch fertig, wenn du nochmal wegen des Handshakeprotokolls gucken möchtest, poste ich den
Quelltext und den Rest dazu... (ich muss nur noch was am Lizenztext ändern, dann kann ich das Programm hochladen...)

Danke nochmal !

Gruss

Alexander

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 30.04.2012 16:19
von Darie
http://www.file-upload.net/download-431 ... x.zip.html

Hier ist meine aktuelle Version von NC-Max V.0817 inkl. Quellcode. Eigentlich ist es zum Lesen und Senden von CNC-Programmen gedacht, aber wenn man das Editorfeld noch editierbar macht, könnte man damit auch schnell beliebige Stringabfolgen an den seriellen Port schicken....

Schönen Tag noch

Alexander

Re: CNC-Programm über seriellen Port übertragen

Verfasst: 30.04.2012 16:44
von Falko
Danke Alexander!

Schöner Code. :allright:
Ich habe noch nie was mit dem Handshake gemacht,
aber nun sehe ich, wie es aufbaut sein muss und das man die
Steuerleitungen manuell setzten bzw. abfragen muss.

Ich dachte immer, das wäre automatisch, wenn man nur das Handshake vorgibt.

Man lernt nie aus :wink:

Gruß,
Falko