Seite 1 von 2

<CTRL-Z> senden an die Com-Schnittstelle

Verfasst: 22.01.2009 13:54
von metrik
Hallo leute ...

ich hab leider folgendes problem:

Ich will mit purebasic über die serielle schnittstelle ein GSM-Modem dazu bringen SMS automatisch wegzusenden. Was via Terminal gut funktioniert ..
-> leider muss ich den den befehl des Modems mit <CTRL-Z> abschliessen was per ascii den Wert dezimal 026 hat. Nur funktionert das nicht... /:->
Ich kann senden was ich will .. das GSM-Modem braucht einfach <CTRL-Z>..
kann jemand bitte helfen .. bin schon frustiert ... :freak:

Verfasst: 22.01.2009 14:02
von ts-soft
Ich würde 29 und 44 senden.

Verfasst: 22.01.2009 14:04
von Kaeru Gaman
CTRL-Z ist ja kein "zeichen"....

also, du hast Chr(26) an deinen string angehängt, den du schickst?
könnte funktionieren, 26 ist SUB, wenn das Gerät das haben will, warum nicht...

CTRL-Z ist allerdings UNDO, was vielleicht von CANCEL sein könnte, also Chr(24)...

außerdem könnte es vielleicht auch eine Ländercode-Verwechslung sein, und das programm erwartet CTRL-Y...

wo hast du denn die 26 her?

Verfasst: 22.01.2009 14:38
von metrik
die CHR(26) hab ich von HTERM ist ein Terminal

das mir genau anzeigt welches Zeichen ich sende ASCII,DEZ,HEX und da zeigt mit HTERM dezimal 026, hex 1A an .. werde aber mal eure vorschläge gleich mal probieren .. thx für die Vorschläge ...

Verfasst: 22.01.2009 15:02
von Kaeru Gaman
> und da zeigt mit HTERM dezimal 026, hex 1A an ..

dann sollte es das ja sein....

du sagtest das funktioniere nicht...
hast du denn probiert das so zu senden:
"befehl bla" + Chr(26)


außerdem sollte in der Beschreibung des Gerätes ja eine Protokoll-Info drin stehen,
notfalls müßte man die auf der Website des Herstellers irgendwie holen können.

Verfasst: 22.01.2009 15:18
von metrik
"befehl bla" +chr(26)

genau so mach ich das nur scheint purebasic .. das falsche zeichen zu senden .. den im Hterm .. kommt prombt eine Antwort ... wenn ich das zeichen in purebasic sende bekomme ich nix... :cry:

Das modem ist von Siemens MC35i lese gerade die docu durch da steht leider nur ..

Response(s)
<CR> Text can be entered. <CTRL-Z>/<ESC>


<ESC> CHR(27) hab ich auch schon probiert...

was gibt es denn noch .. mal gucken ob ich einen zweiten pc .. herbekomme um zu sehen was purebasic wirklich sendet ..

Verfasst: 22.01.2009 15:44
von Kaeru Gaman
schau mal in den Compileroptionen, dass "Unicode Exe" ausgeschaltet ist...

wie man sonst bei Stringmanipulationen im Speicher gezielt auf ANSI bzw. Unicode schaltet, weiß ich nicht.

Verfasst: 22.01.2009 16:20
von metrik
hallo schon probiert keine besserung .. jetzt hab ich mal den zweiten pc miteinander verbunden und geschaut .. was purebasic .. für ein zeichen sendet und es .. sendet alles richtig :shock:

man wo kann da noch der fehler liegen -> baudrate angepasst -> alles richtig gemacht .. :freak:

Verfasst: 22.01.2009 16:31
von metrik
also ich glaube ich hab den fehler ..

das problem ist das, dass modem nur ein char sendet ... ich sende aber im hterm .. per hex-zahl .. also sprich am ende stelle ich auf hex und sende ihm 1A oder dez 26 aber nie als ascii zeichen da ich ja nicht weiss wie ich in Ascii ctrl-Z darstellen muss das er es als crtl-Z erkennt.

irgendeine Idee???

Verfasst: 23.01.2009 14:10
von Falko
Vielleicht hilft diese Tabelle:

http://www-cip.physik.uni-bonn.de/pool/ ... /table.htm

Demnach müsste ein einfaches chr(26) reichen

Ich hab's aber nicht probiert.

Gruß Falko