String $Const mit Hex Zeichen

Antworten
cgu
Beiträge: 11
Registriert: Donnerstag 7. Mai 2015, 09:20

String $Const mit Hex Zeichen

Beitrag von cgu » Freitag 1. April 2016, 05:39

Hallo,
folgendes Problem: Ich möchte verschiedene Zeichenketten über die serielle Schnittstelle senden.
Das senden hat mit "Bytefolge senden" sehr schön funktioniert, da man in die Tabelle alles übersichtlich
eingeben konnte.
Leider war das Empfangen einer Antwort sehr umständlich.

Mit "COM Request" ist das mit der Antwort ja Kinderleicht.
Leider hat man da zu senden aber keine so schöne Tabelle.

Es wäre jetzt schön wenn ich die zu sendenden Bytes direkt als Sting da reinfüttern könnte.
Leider frisst $Const nur normale Zeichen.
Ich möchte aber Befehle schicken, die Hex Zahlen sind und irgendwelche Sonderzeichen
in der ASCII Tabelle sind.

Also z.B 0x10, 0x10, 0x10, 0x10, 0x4B

Das kann ich aber in $Const nicht eingaben.
Habs schon nur <> oder chr() als Sonderzeichen probiert, aber das schluckt es nicht.

Jetzt könnte man auch Byte für Byte konvertieren und dann zusmmensetzten, das ist aber auch umständlich.

Ich Habe es jetzt so gelöst, das ich eine ROMs nehme und die parallel in "$Bytes" einspeise.
Das klappt zumindest, ist aber etwas umständlich.
Bei längerem Befehlen ist das ganz schon klobig.

Ich wollte nur mal nachfragen ob es mit "$Const" garkeine Möglichkeit gibt einen Hex-String einzugeben?

Wenn nicht, dann wäre es auf jeden Fall eine gute Anregung.
Also wie beim ROM so ein Häkchen, wo man zwischen Asc, Hex und Dez umschalten kann.
Zusätzlich noch so eine Art String Tabelle, mit der man per Adresse Angabe verschiedene
Strings ausgeben kann ähnlich wie ein ROM.

Dann könnte man mit der Serielle Schnittstelle noch viel effektiver arbeiten.


Schonmal Danke.

IKT
Beiträge: 553
Registriert: Mittwoch 4. November 2009, 18:32

Re: String $Const mit Hex Zeichen

Beitrag von IKT » Freitag 1. April 2016, 14:23

:mrgreen: lol, :mrgreen: netter Versuch, April, April ...
++++++
Gruss/regards IKT

cgu
Beiträge: 11
Registriert: Donnerstag 7. Mai 2015, 09:20

Re: String $Const mit Hex Zeichen

Beitrag von cgu » Donnerstag 21. April 2016, 05:18

Hallo,
ich mus sagen, meine Aprilscherze waren noch nie gut.
In diesen Fall war es aber auch keiner, sondern das war ernst gemeint :mrgreen:
Ich frage mich warum du das für einen Aprilscherrz hälst?? ;)

Eine Eingabe als HEX und DEZ wäre bei $Const echt ein schöne Sache !

abacom
Site Admin
Beiträge: 3413
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: String $Const mit Hex Zeichen

Beitrag von abacom » Donnerstag 21. April 2016, 07:58

Ich würde es einmal so probieren... Kontante als "Rahmen" direkt in "Com $Senden" deklarieren...
STRCONST.png
STRCONST.png (71.92 KiB) 6740 mal betrachtet
ABACOM support

IKT
Beiträge: 553
Registriert: Mittwoch 4. November 2009, 18:32

Re: String $Const mit Hex Zeichen

Beitrag von IKT » Donnerstag 21. April 2016, 13:02

cgu hat geschrieben:Ich frage mich warum du das für einen Aprilscherrz hälst??
1) Datum: 1.04.2016 ...
2) Kein Protest am Folgetag? (hat drei Wochen gedauert ?!?)
3) In eine $Const kann (jetzt schon) eine HEX Zahl eingegeben werden.
Man muss nur ein $-Zeichen voran stellen! (siehe unten)
Dateianhänge
$Const.png
HEX Eingabe
$Const.png (9 KiB) 6701 mal betrachtet
++++++
Gruss/regards IKT

cgu
Beiträge: 11
Registriert: Donnerstag 7. Mai 2015, 09:20

Re: String $Const mit Hex Zeichen

Beitrag von cgu » Freitag 22. April 2016, 05:23

Hallo,
@IKT: Also das mit dem 01.04 war Zufall und ich hab leider nicht immer so viel Zeit hier mal reinzuschauen.

Das mit dem $ war schon mal ein guter Tipp, aber wenn ich damit nur ein einziges HEX-Zeichen eingeben
kann hilft mir das leider auch nichts, da ich ja eine Zeichenkette brauche.

@Abacom: Mit dem Rahmen habe ich aber leider auch nur eine einzige Zeichenkette zur Verfügung.

Ich möchte aber zwischen viel Zeichenketten wählen können so wie die Tabelle
bei "Bytefolge senden"

Ergänzung:
@IKT: ich habe es grad mal ausprobiert und es funktioniert nicht mal mit einem HEX Zeichen.
Wenn ich da $10 reinschreibe, dann werden über die Serielle Schnittstelle 3 Zeichen "$10" übertragen
und nicht nur ein Byte

IKT
Beiträge: 553
Registriert: Mittwoch 4. November 2009, 18:32

Re: String $Const mit Hex Zeichen

Beitrag von IKT » Freitag 22. April 2016, 08:59

cgu hat geschrieben:hilft mir das leider auch nichts, da ich ja eine Zeichenkette brauche
Also gut, dann müsstest Du vielleicht einmal die Zeichenkette genau beschreiben (definieren):
"0x34 0x12 etc."
dazu noch, wofür jedes Zeichen steht; z.B.: Kommando, Adresse, Länge der Daten, Wert1, Wert2 etc. ... EOT = Ende-Zeichen (End of Transmission)
Im obigen Beispiel ist 0x20 (HEX 20) das Trennzeichen: "Leerschlag" = 32 Dezimal.
(Eine Zeichenkette ist wie Papier, man kann "reinschreiben" was man will!)

Einschränkung:
Es muss so geschrieben sein, dass der Empfänger "es" versteht!
Mit anderen Worten: der Empfänger definiert die "Sprache". (Dies wird auch Protokoll genannt.)
cgu hat geschrieben:... es werden 3 Zeichen übertragen und nicht nur ein Byte ...
Ist ja logisch bei einer Zeichenkette ...
Ansonsten Byte-Senden (oder Analog-Wert ...) verwenden!
++++++
Gruss/regards IKT

cgu
Beiträge: 11
Registriert: Donnerstag 7. Mai 2015, 09:20

Re: String $Const mit Hex Zeichen

Beitrag von cgu » Dienstag 26. April 2016, 05:32

Hallo,
du hast mich leider immer noch nicht verstanden.

Ich möchte eine Abfolge von ASCII Zeichen senden, die ich als Hex oder Dez eingeben möchte,
da es Sonderzeichen sind.
In irgendwelchen Terminalprogrammen (z.B HTerm) kann ich auch die Eingabe als ASC, Hex oder Dez machen.
In ProfiLab geht das aber nur wenn ich jedes Zeichen einzeln in umwandle,
das ist umständlich darum bräuchte ich einen Funktion,
mit der man einen String sowohl als ASC, Hex oder Dez eingeben kann.
.. es werden 3 Zeichen übertragen und nicht nur ein Byte ...
Ist ja logisch bei einer Zeichenkette ...
Nein eben nicht!! Ich möchte das eine Hex Zahl als ein einziges ASCII Zeichen übertragen wird.
Ansonsten Byte-Senden (oder Analog-Wert ...) verwenden!
Ja genau da ist das Problem.
Mit ein paar Zeichen geht das schon, wenn du aber viele Zeichen hast wird das extrem unübersichtlich
Mit einen String Const Funktion wo man auch Hex eingeben könnte wäre
das ganze wesentlich einfacher.

Wäre wie gesagt eine Anregung für Abacom.
Irgendwelche Schlüsselzeichen einführen z.B chr(), Klammern oder so
damit man dem Programm sagen kann jawoll, jetzt kommt eine ASCII Code Eingabe
bitte entsprechendes ASCII Zeichen senden.

IKT
Beiträge: 553
Registriert: Mittwoch 4. November 2009, 18:32

Re: String $Const mit Hex Zeichen

Beitrag von IKT » Dienstag 26. April 2016, 12:00

cgu hat geschrieben:Nein eben nicht!! Ich möchte das eine Hex Zahl als ein einziges ASCII Zeichen übertragen wird.
Dies heisst dann, Deine numerischen Möglichkeiten sind eingeschränkt auf: 0 - 255 (DEZ) oder 00 - FF (HEX), da alles was grösser oder kleiner ist, nicht in einem Byte übertragen werden kann. Ist das wirklich, was Du haben willst?
IKT hat geschrieben:Also gut, dann müsstest Du vielleicht einmal die Zeichenkette genau beschreiben (definieren):
"0x34 0x12 etc."
dazu noch, wofür jedes Zeichen steht; z.B.: Kommando, Adresse, Länge der Daten, Wert1, Wert2 etc. ... EOT = Ende-Zeichen (End of Transmission)
Im obigen Beispiel ist 0x20 (HEX 20) das Trennzeichen: "Leerschlag" = 32 Dezimal.
(Eine Zeichenkette ist wie Papier, man kann "reinschreiben" was man will!)

Einschränkung:
Es muss so geschrieben sein, dass der Empfänger "es" versteht!
Mit anderen Worten: der Empfänger definiert die "Sprache". (Dies wird auch Protokoll genannt.)
Ich wiederhole mich äusserst ungern.
Übrigens: ProfiLab ist kein Terminal Program! (dafür gibt's diese ja)

Deine Grundlagen-Kenntnisse scheinen zu fehlen. Ich bin "raus" hier!
++++++
Gruss/regards IKT

Mike D
Beiträge: 514
Registriert: Dienstag 14. Oktober 2008, 14:48
Wohnort: Elbe- Weser-Dreieck

Re: String $Const mit Hex Zeichen

Beitrag von Mike D » Dienstag 26. April 2016, 13:49

guck mal unter Beispiele\Neue_Funktionen\Strings\String_Bytes_Conversion

$Bytes konvertiert ASCII-Werte in Strings und zurück

Mike

cgu
Beiträge: 11
Registriert: Donnerstag 7. Mai 2015, 09:20

Re: String $Const mit Hex Zeichen

Beitrag von cgu » Mittwoch 27. April 2016, 05:20

Oben aus meinem ersten Post:
Ich Habe es jetzt so gelöst, das ich eine ROMs nehme und die parallel in "$Bytes" einspeise.
Das klappt zumindest, ist aber etwas umständlich.
Bei längerem Befehlen ist das ganz schon klobig.
Ich wollte mit diesem Beitrag nur sicherstellen, dass ich eine alternative, einfacher Funktion
nicht übersehen habe, da diese aber nicht gibt könnte man
dieses Thema wohl in Anregungen verschieben.

Wie gesagt bei $Const so eine Tabelle ergänzen wie bei "Bytefolge senden", dann wäre das eine runde Sache.

Antworten

Zurück zu „Thema RS232“