|
Post by packet on Apr 21, 2021 17:30:04 GMT 1
Hallo GFA-Basic Freunde!
Es ist schon eine ganze Zeit lang her, das ich mir das letzte mal zum Programmieren Zeit genomnen hab. Mit GFA-Basic hatte ich meine ersten Programmier Erfahrungen auf einem Atari ST-1024 ende der 80'er. Später dann in den 90ern hatte ich mir dann die PC-Version von GFA-Basic gegönnt und auch noch bis ins Millenium hinein einiges damit erledigt. Mittlerweile gibts ja für vieles fertige Lösungen und deshalb hab ich die letzten Jahre eigentlich nur noch wenig, bis garnichts mehr selber programmiert.
Jetzt möchte ich aber einen von meinem Energie-Versorger eingebauten Smart-Meter auslesen und hab mir dazu einen Auslesekopf besorgt, der mit dem Zähler via 9K6 über USB/RS232-Com Koppler mit meinem PC kommuniziert. Anstatt ASCII kommt aber hier nur HEX-Code an... Dachte zuerst die Com-Parameter stimmen nicht, aber das Datenformat nennt sich SML und ist ein für Energiezähler Standard tisiertes Datenformat. Nun gibt es für dieses Datenformat verschiedene Software-Parser in Python, Exel mit VB die den Datenstrom Auflösen. Ich möchte als GFA-Fan nun das aber mit GFA-Basic realisieren. Ich denke das auch andere User für so was ein offenes Ohr hätten und suche auf diesem Wege mit Tüftler für ein nicht Gewinn orientiertes Open-Souce GFA-Projekt.
Wie gesagt es gibt schon Open-Source Projekte für Python die man teilweise nur in GFA konvertieren muss...
Freu mich auf Eure Vorschläge.
Gruß...
|
|
|
Post by (X) on Apr 21, 2021 23:43:48 GMT 1
Hallo GFA-Basic Freunde! Es ist schon eine ganze Zeit lang her, das ich mir das letzte mal zum Programmieren Zeit genomnen hab. Mit GFA-Basic hatte ich meine ersten Programmier Erfahrungen auf einem Atari ST-1024 ende der 80'er. Später dann in den 90ern hatte ich mir dann die PC-Version von GFA-Basic gegönnt und auch noch bis ins Millenium hinein einiges damit erledigt. Mittlerweile gibts ja für vieles fertige Lösungen und deshalb hab ich die letzten Jahre eigentlich nur noch wenig, bis garnichts mehr selber programmiert. Jetzt möchte ich aber einen von meinem Energie-Versorger eingebauten Smart-Meter auslesen und hab mir dazu einen Auslesekopf besorgt, der mit dem Zähler via 9K6 über USB/RS232-Com Koppler mit meinem PC kommuniziert. Anstatt ASCII kommt aber hier nur HEX-Code an... Dachte zuerst die Com-Parameter stimmen nicht, aber das Datenformat nennt sich SML und ist ein für Energiezähler Standard tisiertes Datenformat. Nun gibt es für dieses Datenformat verschiedene Software-Parser in Python, Exel mit VB die den Datenstrom Auflösen. Ich möchte als GFA-Fan nun das aber mit GFA-Basic realisieren. Ich denke das auch andere User für so was ein offenes Ohr hätten und suche auf diesem Wege mit Tüftler für ein nicht Gewinn orientiertes Open-Souce GFA-Projekt. Wie gesagt es gibt schon Open-Source Projekte für Python die man teilweise nur in GFA konvertieren muss... Freu mich auf Eure Vorschläge. Gruß...
Translated via Google:
|
|
|
Post by (X) on Apr 21, 2021 23:53:45 GMT 1
Here is a function that will translate a Hex character to Decimal if that is of any use to you. It would obviously have to be expanded to cover a multi-character hex code.
Function H2D(s$) As Int ' ' Convert hex chr to decimal ' s = Upper(s) If s = "0" Return 0 If s = "1" Return 1 If s = "2" Return 2 If s = "3" Return 3 If s = "4" Return 4 If s = "5" Return 5 If s = "6" Return 6 If s = "7" Return 7 If s = "8" Return 8 If s = "9" Return 9 If s = "A" Return 10 If s = "B" Return 11 If s = "C" Return 12 If s = "D" Return 13 If s = "E" Return 14 If s = "F" Return 15 Return 0
|
|
webu
Full Member
 
Posts: 102
|
Post by webu on Apr 22, 2021 9:15:35 GMT 1
Print Hex2Dec("FF") // -> 255 Print Hex2Dec("20") // -> 32 Print Hex2Dec("c000") // -> 49152
Function Hex2Dec(a$) As Int Return Val("$" + a$) 'input caseINsensitiv
|
|
|
Post by (X) on Apr 22, 2021 17:39:13 GMT 1
Thanks for the inspiration.
I worked out this function to take a few more notation formats into account.
Function H2D(h$) As Int If Left(h$, 1) = "$" Return Val(h$) If Left(h$, 1) = "#" Return Val("$" + Mid(h$, 2)) If Upper(Left(h$, 1)) = "H" Return Val("$" + Mid(h$, 2)) If Upper(Left(h$, 2)) = "0X" Return Val(h$) Return Val("$" + h$)
|
|
|
Post by packet on Apr 22, 2021 22:58:06 GMT 1
|
|
|
Post by (X) on Apr 22, 2021 23:48:40 GMT 1
|
|
|
Post by (X) on May 4, 2021 12:55:28 GMT 1
You may also be interested in the "HexDump(V:w, Len(w))" command. Description: HexDump returns a string with a memory dump of at least 16 bytes formatted as hexadecimal numbers. The size of the memory dump can be determined using the optional second argument len but is always rounded to a multiple of 16. Debug.Print or any other output command can be used to display the string.
$Library "gfawinx"
Local String a, w a = "Hello GFABASIC32" w = Wide(a) Debug HexDump(V:w, Len(w)) a = Ansi(w) Debug HexDump(V:a, Len(a)) Debug.Show
The above example outputs the following memory dump to the debug output window:
|
|