Copy and Paste String Konstante
-
- Beiträge: 5
- Registriert: Montag 8. Oktober 2012, 22:49
Copy and Paste String Konstante
Hallo,
Ich habe ein Problem:
Ich habe eine Datei mit einigen hundert Zeichen (Binärdatei) die ich in eine String Konstante bringen muss.
Wen ich die Datei z.B. mit dem Editor öffne und per “Copy and Paste“ in die Konstante einfüge werden aus Zeichen mit dem ASCI Wert 00 Hex eine Zeichen mit dem ASCI Wert 20 Hex.
das Problem scheint die Zwischenablage zu sein.
gibt es eine alternative eine String Konstante zu füllen ?
Ich habe ein Problem:
Ich habe eine Datei mit einigen hundert Zeichen (Binärdatei) die ich in eine String Konstante bringen muss.
Wen ich die Datei z.B. mit dem Editor öffne und per “Copy and Paste“ in die Konstante einfüge werden aus Zeichen mit dem ASCI Wert 00 Hex eine Zeichen mit dem ASCI Wert 20 Hex.
das Problem scheint die Zwischenablage zu sein.
gibt es eine alternative eine String Konstante zu füllen ?
Re: Copy and Paste String Konstante
Welchem Zweck dient das?
Nullbytes sind keine darstellbaren Zeichen.
Möglichkeiten:
1.) "Datei - Bytes lesen" -Komponente
2.) RAM/ROM
3.) Manuell zusammensetzen: Summe$ = $ADD($Const + $chr(0) +$Const ...)
4.) ...?
Nullbytes sind keine darstellbaren Zeichen.
Möglichkeiten:
1.) "Datei - Bytes lesen" -Komponente
2.) RAM/ROM
3.) Manuell zusammensetzen: Summe$ = $ADD($Const + $chr(0) +$Const ...)
4.) ...?
ABACOM support
-
- Beiträge: 5
- Registriert: Montag 8. Oktober 2012, 22:49
Re: Copy and Paste String Konstante
ich habe ein eine Binäre Datei mit Einstellungen die ich über den CH341a per i²C auf einen Chip überspielen will. Das mit Byte lesen hab ich auch schon probiert, das dauert bei bis zu 4096 Bytes relativ Lange. wen man es sauber lösen möchte (bei hohen tackt Raten verschiebt sich gelegentlich was.
Das Rom ist Ebenfalls Langsamer und vor allem kann ich meine Datei nicht Importieren.
Das zusammensetzen ist zwecks Import der Datei nicht Möglich.
Also Generell finde ich dass die Datei Import und Export Funktionen noch etwas ausgeweitet werden sollten.
Ein Baustein der eine Datei Lessen und als String ausgeben kann wäre oft hilfreich mit der Vorgabe des ersten Zeichen und Länge … des zu lesenden Strings.
Oder auch ein Import / Export von Hex Dateien hätte mir zumindest schon oft geholfen…
Das Rom ist Ebenfalls Langsamer und vor allem kann ich meine Datei nicht Importieren.
Das zusammensetzen ist zwecks Import der Datei nicht Möglich.
Also Generell finde ich dass die Datei Import und Export Funktionen noch etwas ausgeweitet werden sollten.
Ein Baustein der eine Datei Lessen und als String ausgeben kann wäre oft hilfreich mit der Vorgabe des ersten Zeichen und Länge … des zu lesenden Strings.
Oder auch ein Import / Export von Hex Dateien hätte mir zumindest schon oft geholfen…
Re: Copy and Paste String Konstante
Wofür also das Ganze in String konvertieren? Diese Konvertiererei "frisst" Zeit!SV Multimedia hat geschrieben:ich habe ein eine Binäre Datei mit Einstellungen die ich über den CH341a per i²C auf einen Chip überspielen will.
Warum nicht binär herein --> binär heraus (ohne Konversionen dazwischen)?
BTW: binär / HEX = dasselbe (nur eine andere Form der Darstellung!)
Ohne eine präzise Beschreibung des vorliegenden Problems (so detailiert wie möglich), wird es nahezu unmöglich, eine vernünftige Lösung zu finden.
++++++
Gruss/regards IKT
Gruss/regards IKT
Re: Copy and Paste String Konstante
Ich finde die Anregung von SV Multimedia prinzipiell ganz richtig.
Einige Funktionen (hier der CH341A) erwarten halt $Parameter für die Datenübergabe.
Allerdings ist die Datenlänge (4kB) erstaunlich groß.
Was wird denn da alles in einem Rutsch ausgegeben???
I²C-Kommandos sind doch eigentlich eher nur ein paar wenige Bytes lang.
Die $Länge in PL ist übrigens begrenzt! Es wird also ohnehin "häppchenweise" gehen müssen.
P.s. Den Vorschlag "Eigene DLL" habe ich oben vergessen zu erwähnen.
Einige Funktionen (hier der CH341A) erwarten halt $Parameter für die Datenübergabe.
Allerdings ist die Datenlänge (4kB) erstaunlich groß.
Was wird denn da alles in einem Rutsch ausgegeben???
I²C-Kommandos sind doch eigentlich eher nur ein paar wenige Bytes lang.
Die $Länge in PL ist übrigens begrenzt! Es wird also ohnehin "häppchenweise" gehen müssen.
P.s. Den Vorschlag "Eigene DLL" habe ich oben vergessen zu erwähnen.
ABACOM support
-
- Beiträge: 5
- Registriert: Montag 8. Oktober 2012, 22:49
Re: Copy and Paste String Konstante
Hallo und danke für die Anregungen,
zum Thema Konversionen meine Feststellung ist eher eine andere, die String Bausteine Arbeiten Hoch effizient ich würde mir für PL 5 in Wünschen das sich da noch etwas Tut, die Auswahl an Bausteinen ist ja im Vergleich zu den anderen noch nicht so groß.
Also meine Anwendung ist das Inbetriebnahmen und Testeten einer Platine die mit einem ASIC Bestück ist.
Dieser Liest beim normalen Starten seine Konfiguration aus einem I2C SEEP.
Ich habe nun Einen Testablauf vor bei dem ich das SEEP mit einer Test Konfiguration Beschreibe,
das Ganze in 4 Blöcken a 512 Bytes mehr kann der CH314 nicht.
(an der Stele ist übrigens die Doku etwas dürftig genauso steht außer in den Beispielen nirgends wie die Pins des Bausteines zu verwenden sind.)
Nach dem Beschreiben gebe ich über einen IO Pin des CH314 den Reset des ASIC Frei und teste sein verhalten über einige weitere I/O Pins.
Danach wird Die endgültige (Auslieferzustand) Konfiguration ins SEEP Geschrieben (natürlich mit Rücklesen und Vergleich…) hierbei werden wider ca. 4kB Geschrieben allerdings einige Zellen durch Serien Nummer… Ersetzt.
was mich gleich zum Nächsten Problem Führt
(ev. Gibt’s das auch)
die umwandeln von Hex werten aus einem String Eingabefeld in Bytes.
anders rum geht das ja mit „FMT“ Problemlos
(Siehe Anhang die Textkonstante ist nur ein Lehrzeichen zur besseren Lesbarkeit in der Anzeige.)
Das mit der DLL hab ich mir auch schon überlegt.
Allerdings ist eine Integrierte Lösung natürlich schöner und bringt ev. Auch dem eine oder anderem etwas mehr.
zum Thema Konversionen meine Feststellung ist eher eine andere, die String Bausteine Arbeiten Hoch effizient ich würde mir für PL 5 in Wünschen das sich da noch etwas Tut, die Auswahl an Bausteinen ist ja im Vergleich zu den anderen noch nicht so groß.
Also meine Anwendung ist das Inbetriebnahmen und Testeten einer Platine die mit einem ASIC Bestück ist.
Dieser Liest beim normalen Starten seine Konfiguration aus einem I2C SEEP.
Ich habe nun Einen Testablauf vor bei dem ich das SEEP mit einer Test Konfiguration Beschreibe,
das Ganze in 4 Blöcken a 512 Bytes mehr kann der CH314 nicht.
(an der Stele ist übrigens die Doku etwas dürftig genauso steht außer in den Beispielen nirgends wie die Pins des Bausteines zu verwenden sind.)
Nach dem Beschreiben gebe ich über einen IO Pin des CH314 den Reset des ASIC Frei und teste sein verhalten über einige weitere I/O Pins.
Danach wird Die endgültige (Auslieferzustand) Konfiguration ins SEEP Geschrieben (natürlich mit Rücklesen und Vergleich…) hierbei werden wider ca. 4kB Geschrieben allerdings einige Zellen durch Serien Nummer… Ersetzt.
was mich gleich zum Nächsten Problem Führt
(ev. Gibt’s das auch)
die umwandeln von Hex werten aus einem String Eingabefeld in Bytes.
anders rum geht das ja mit „FMT“ Problemlos
(Siehe Anhang die Textkonstante ist nur ein Lehrzeichen zur besseren Lesbarkeit in der Anzeige.)
Das mit der DLL hab ich mir auch schon überlegt.
Allerdings ist eine Integrierte Lösung natürlich schöner und bringt ev. Auch dem eine oder anderem etwas mehr.
- Dateianhänge
-
- Zwischenablage.jpg (65.06 KiB) 15345 mal betrachtet
Re: Copy and Paste String Konstante
Dies ist einfach, solange nur ein Byte eingegeben wird (00 bis FF):SV Multimedia hat geschrieben:Das Umwandeln von HEX-Werten aus einem String Eingabefeld in Bytes (auf Deutsch)
1 x String Konstante ("$")
1 x String Eingabefeld
hinterher:
1 x String Addierer (zwei Eingänge), wobei:
Eingang 1 = Konstante, Eingang 2 = Eingabefeld
hinterher:
1 x $VAL Baustein ... fertig!
Bei Eingabe von mehreren Bytes wird eine (dezimale) Fliesskomma-Zahl ausgegeben ...
++++++
Gruss/regards IKT
Gruss/regards IKT
-
- Beiträge: 5
- Registriert: Montag 8. Oktober 2012, 22:49
Re: Copy and Paste String Konstante
Darf man sich den nun Auf ein Update von PL mit einem neuen Datei Lesse Baustein oder ähnlichem freuen oder muss ich selber tätig werden?
Re: Copy and Paste String Konstante
Eine dahingehende Erweiterung z.Zt. nicht geplant.
ABACOM support
-
- Beiträge: 5
- Registriert: Montag 8. Oktober 2012, 22:49
Re: Copy and Paste String Konstante
so nun hab ich eine DLL aber ein Problem mit Der Schnittstelle in der DLL den Strings werden in "0" Terminiert
was bei einer Binär Datei sehr Unpraktisch ist den da kann jederzeit eine "0" vorkommen.
gibt's dafür irgend eine Lösung ?
was bei einer Binär Datei sehr Unpraktisch ist den da kann jederzeit eine "0" vorkommen.
gibt's dafür irgend eine Lösung ?
Re: Copy and Paste String Konstante
Nur so eine Idee: CR&LF anhängen (in String, terminierendes 0 kommt danach).
In PL-Prog. danach suchen und den Rest "ins Nirvana" schicken (ignorieren)!
In PL-Prog. danach suchen und den Rest "ins Nirvana" schicken (ignorieren)!
++++++
Gruss/regards IKT
Gruss/regards IKT
Re: Copy and Paste String Konstante
... wenn schon DLL, dann würde ich in der eigenen DLL gleich das CH341A-API direkt ansprechen.
Es gibt keinen Grund dann erst Strings an PL zu übergeben.
Es gibt keinen Grund dann erst Strings an PL zu übergeben.
CH341A I²C API-Funktionen (in CH341API.DLL)
Function CH341StreamI2C(...) Allgemeines Lesen und Schreiben über I²C
Function CH341ReadI2C(...) Lesen von Chips mit interner Speicher- oder Registeradresse
Function CH341WriteI2C(...) Schreiben von Chips mit interner Speicher- oder Registeradresse
Function CH341ReadEEPROM(...) Lesen von I²C-EEPROM
Function CH341WriteEEPROM(...) Schreiben in I²-EEPROM
ABACOM support