CNC-Programm über seriellen Port übertragen
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: CNC-Programm über seriellen Port übertragen
@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.
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.
- Falko
- Admin
- Beiträge: 3531
- 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.0 - Kontaktdaten:
Re: CNC-Programm über seriellen Port übertragen
@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
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
dürfte das hier sein: http://code.google.com/p/binwalk/Falko hat geschrieben:Binwalk kenne ich nicht, was für ein Tool ist das und wo kann ich es herunterladen?
(erster Google-Treffer )
Grüße ... Kiffi
Hygge
- Falko
- Admin
- Beiträge: 3531
- 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.0 - Kontaktdaten:
Re: CNC-Programm über seriellen Port übertragen
Erster Google-Treffer ist gut
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
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
Hallo, ich bins nochmal
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
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
Repeat
PureBasic
ForEver
PureBasic
ForEver
- Falko
- Admin
- Beiträge: 3531
- 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.0 - Kontaktdaten:
Re: CNC-Programm über seriellen Port übertragen
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
für dieses Timeout schreiben. Ich habe das nur noch nicht ausprobiert.
http://forums.purebasic.com/english/vie ... 13&t=39374
Gruß Falko
- Falko
- Admin
- Beiträge: 3531
- 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.0 - Kontaktdaten:
Re: CNC-Programm über seriellen Port übertragen
@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:
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:
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.
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
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:
Da ich im englischen Forum bezüglich des Stopbits angefragt, habe,StopBits = Val(GetGadgetText(#ComboBox_25))
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:
wenn du für StopBit den Wert 1.5 nutzen möchtest, falls erforderlich.StopBits = Valf(GetGadgetText(#ComboBox_25))
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
Danke Falko ! Den Bug hätte ich ohne deine Hilfe nicht gefunden
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
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
Repeat
PureBasic
ForEver
PureBasic
ForEver
Re: CNC-Programm über seriellen Port übertragen
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
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
Repeat
PureBasic
ForEver
PureBasic
ForEver
- Falko
- Admin
- Beiträge: 3531
- 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.0 - Kontaktdaten:
Re: CNC-Programm über seriellen Port übertragen
Danke Alexander!
Schöner Code.
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
Gruß,
Falko
Schöner Code.
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
Gruß,
Falko