German Serielle Übertragung von Zahlenwerten - gelöst - solved

ttronic

Member
Licensed User
Longtime User
Hallo B4x Mitglieder,

suche seit Tagen eine Lösung für mein serielles Übertragungsproblem......
eigentlich wolte ich nur z.B. meinen Datenwert "50" übertragen, aber das scheint mit der asyncwrite() ja nicht so einfach zu sein.
Oder ich steh auf dem Schlauch.... ........

Wenn ich aus einem Terminalprogram den Wert 50 eingebe, Taste 5 gefolgt von Taste 0 , gefolgt von CR(13) sehe ich am Seriellen Datenlogger,
daß zuerst die Bytes für dec 53 dann die dec 48 ..... dann CR in folge gesendet werden. Alles OK.... Microcontroller hats kappiert...:)

das ganze aus B4A heraus ..... macht mir schwierigkeiten..
stringtohex funktioniert soweit, daß die Zahlz.B. dec 50 in hex 35 und hex 30 gewandelt werden...
aber dann die Wandlung von Hex auf den Dezimalwert ,krieg ich irgenwie nicht gebacken....

suche ein Funktion, "StringtoDec".... die mir aus dec"50" 53 und 48 wandelt .....

Ich sollte Dezimalwerte 0-60 z.b "50" also Dezimal 53(für5) gefolgt von 48(für0) , mit Asyncwrite senden....

Vielleicht hat einer von Euch ein Lösung

Viele Grüße und schon mal Danke im Vorraus
Heinz
 

mw71

Active Member
Licensed User
Longtime User
Moin,

suchst du sowas? ByteConverter
Ansonsten fallen mir noch CHR, ASC, BytesToString ein (hab jetzt aber nicht weiter nachgesehen :) )

Grüße
 

ttronic

Member
Licensed User
Longtime User
Hallo mw71,

Hey ...danke schoen fuer die schnelle antwort.

Ich sollte verschiedene kommandos und daten an tiny25 senden.

Kommandos sind z.b. kleines l “l“ oder “r“
In vb6 ist das kein problem...
Print #1 “r“......
Vb6 konvertiertv das r in dec... also 114...
Zahlen werden auch konvertiert... in dec.

Bei b4a funzt das ueberhaupt nicht so...
Hier muss ich den dec wert 114 anstatt r senden..., das geht...
Will ich den string 50 senden , geht zwar, aber entspricht nicht stringwert 50....
Wenn ich byteconverter benutze , bekomme ich hexwert von meinem string, und diesen hexwert kann ich nicht in dec konvertieren....
Alles etwas komisch....

Ich will nur den string z.b. r oder den wert 50 uebertragen...

Ich schau mal morgen ob ich dir code senden kann.

So nun guats nächtle und nochmal Danke
Heinz
 

mw71

Active Member
Licensed User
Longtime User
Ich hab mich nur recht kurz mit B4R beschäftigt, bin recht schnell auf die Arduino IDE umgestiegen (ist eine gewisse Umgewöhnung, da C, aber hat auch Vorteile).

So nun wieder zurück. Mehr unterstützung (weil mehr Leute) bekommt man im Englischen Teil.
Schau mal hier:
https://www.b4x.com/android/forum/t...-arduinos-with-rsoftwareserial-library.65779/
 

ttronic

Member
Licensed User
Longtime User
Danke für deine Hilfe.
Ich Versuch Mal im englischen Raum.

Viele Grüsse
Heinz
 

ttronic

Member
Licensed User
Longtime User
Private Number = 50 As Double
Message = NumberFormat(Number, 1, 0).GetBytes("Ascii")
Msgbox("123 "& Message(0) & Message(1) , "info1")

CallSub2(Starter, "SendMessage", Array As Byte(Message(0),Message(1),13,10))
^ ^ ^ ^
5 0 cr lf

Vielen Dank......
 

Attachments

  • Image 1.png
    Image 1.png
    87.2 KB · Views: 202
Top