Minicom Ctrl-z simuleren

Pagina: 1
Acties:
  • 159 views sinds 30-01-2008
  • Reageer

  • Xboty
  • Registratie: September 2003
  • Laatst online: 12:36
De situatie is alsvolgt:
Vandaag hebben we een sms-modem binnengekregen, dit is gewoon een soort mobiele telefoon met een seriele aansluiting. Simkaart erin en je kunt hem aanroepen om bijvoorbeeld te smsen.
Nu kan ik hem via minicom aanspreken en met behulp van de volgende commando's kan ik een sms bericht versturen, dat werkt dus:
code:
1
2
3
4
5
6
7
8
9
at&f0
at&f0
ATZ0
AT+CSCA?
AT+CMGF=1
AT+CNMI=2,1
AT+CMGS=0612345678
dit is het bericht
^z


Zoals je ziet moet je na het invoeren van de tekst een control-z geven voordat ie ook daadwerkelijk gaat versturen. Nu heb ik een scriptje gemaakt wat uitgevoerd word door runscript maar dat blijft hangen bij de control-z:
code:
1
2
3
4
5
6
7
8
send at&f
send at&f0
send ATZ0
send AT+CSCA?
send AT+CMGF=1
send AT+CNMI=2,1
send AT+CMGS=0612345678
send De berichttekst gevolgd door een control-z


Mijn vraag is nu, hoe kan ik een control-z simuleren zodat het bericht verstuurd word? :? Simpel ^z of iets dergelijks versturen werkt niet, en zoeken op GoT en google brengt mij ook niet veel verder.

De user manual zegt overigens:
The device responds to the command with the prompt '<' and awaits message text (max 160 caracters).
To complete the operation send Ctrl-Z char (0x1A hexadecimal), to exit without sending the message send ESC char (0x1B hexadecimal)

Verwijderd

misschien stom, maar kan het niet met een newline+cariage return?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 13 oktober 2005 @ 17:09:
misschien stom, maar kan het niet met een newline+cariage return?
Een CTRL-Z (0x1A) is geen newline (0x0A) + carriage return (0x0D). In dit soort applicaties is een CTRL-Z redelijk gangbaar en verwacht ik niet dat een CRLF opeens zou werken. Ik denk dat je je gewoon het best aan de documentatie kunt houden.

Kun je geen hexadecimale notatie gebruiken met dat "runscript" ofzo?

Ik zie in de documentatie van "runscript" overigens meteen staan:
\o - send character o (o is an octal number)
Dus \032 zou moeten werken volgens mij... (0328 = 1A16 = 2610)

[ Voor 51% gewijzigd door RobIII op 13-10-2005 17:22 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Xboty
  • Registratie: September 2003
  • Laatst online: 12:36
That's it 8)7

De oplossing is dus het volgende scriptje:
code:
1
2
3
4
5
6
7
8
9
send at&f
send at&f0
send ATZ0
send AT+CSCA?
send AT+CMGF=1
send AT+CNMI=2,1
send AT+CMGS=0612345678
sleep 2
send "berichttekst \032''

(Zonder de sleep werkt het niet, omdat je anders de berichttekst al stuurt zonder dat het modem hiernaar gevraagd heeft)

En het scriptje word met het volgende commando aangeroepen :
code:
1
runscript [script] > /dev/ttyS0


Bedankt!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 22:46

SA007

Moderator Tweaking
Kan je het dan niet beter in expect maken, is een simpele progtaal die reageerd op tekst die hij terugkrijgt...

Ivm eventuele fouten oid (geen bereik, sim leesfout, etc)