Copy and Paste String Konstante

Dieser Bereich dient dem Austausch über geplante oder bereits realisierte Projekte - von Anwender zu Anwender.
Antworten
SV Multimedia
Beiträge: 5
Registriert: Montag 8. Oktober 2012, 22:49

Copy and Paste String Konstante

Beitrag von SV Multimedia »

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 ?
abacom
Site Admin
Beiträge: 4099
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Copy and Paste String Konstante

Beitrag von abacom »

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.) ...?
ABACOM support
SV Multimedia
Beiträge: 5
Registriert: Montag 8. Oktober 2012, 22:49

Re: Copy and Paste String Konstante

Beitrag von SV Multimedia »

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…
IKT
Beiträge: 554
Registriert: Mittwoch 4. November 2009, 18:32

Re: Copy and Paste String Konstante

Beitrag von IKT »

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.
Wofür also das Ganze in String konvertieren? Diese Konvertiererei "frisst" Zeit!
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
abacom
Site Admin
Beiträge: 4099
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Copy and Paste String Konstante

Beitrag von abacom »

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 :shock: 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
SV Multimedia
Beiträge: 5
Registriert: Montag 8. Oktober 2012, 22:49

Re: Copy and Paste String Konstante

Beitrag von SV Multimedia »

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.
Dateianhänge
Zwischenablage.jpg
Zwischenablage.jpg (65.06 KiB) 26809 mal betrachtet
IKT
Beiträge: 554
Registriert: Mittwoch 4. November 2009, 18:32

Re: Copy and Paste String Konstante

Beitrag von IKT »

SV Multimedia hat geschrieben:Das Umwandeln von HEX-Werten aus einem String Eingabefeld in Bytes (auf Deutsch)
Dies ist einfach, solange nur ein Byte eingegeben wird (00 bis FF):
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
SV Multimedia
Beiträge: 5
Registriert: Montag 8. Oktober 2012, 22:49

Re: Copy and Paste String Konstante

Beitrag von SV Multimedia »

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?
abacom
Site Admin
Beiträge: 4099
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Copy and Paste String Konstante

Beitrag von abacom »

Eine dahingehende Erweiterung z.Zt. nicht geplant.
ABACOM support
SV Multimedia
Beiträge: 5
Registriert: Montag 8. Oktober 2012, 22:49

Re: Copy and Paste String Konstante

Beitrag von SV Multimedia »

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 ?
IKT
Beiträge: 554
Registriert: Mittwoch 4. November 2009, 18:32

Re: Copy and Paste String Konstante

Beitrag von IKT »

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)!
++++++
Gruss/regards IKT
abacom
Site Admin
Beiträge: 4099
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Copy and Paste String Konstante

Beitrag von abacom »

... 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.
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
Antworten

Zurück zu „PROFILAB Kundenprojekte und Aufgabenstellungen“