Home › Forum › Programmazione IEC 61131 (LogicLab) › Invio di un SMS con il carattere ‘@’ nel testo
- Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 9 mesi fa da Sergio Bertana.
-
AutorePost
-
Luglio 18, 2013 alle 2:04 pm #35388AnonimoInattivo
Utilizzando la libreria eModemLib stò realizzando su di un modulo SlimLine compact ARM7, un programma che invia dei messaggi SMS su attivazione di ingressi digitali. Utilizzo il modem MC55i della Cinterion e tutto funziona perfettamente se invio testi con caratteri ascii stampabili.
Purtroppo devo inviare un messaggio che contiene il carattere “@” e quando inserisco questo carattere nel testo, nel messaggio che ricevo il carattere è sostituito con “j”. Non riesco a capire il perchè.
Luglio 18, 2013 alle 3:12 pm #37709Sergio BertanaAmministratore del forumIl modem BGS2, per la codifica del carattere “@” utilizza il codice ascii “0x00”, quindi si deve utilizzare questo codice all’interno della stringa da inviare. La FB ModemSMSSend_v1 accetta come parametro l’indirizzo della stringa messaggio da inviare, purtroppo nelle stringhe il carattere “0x00” è il carattere terminatore di stringa.
Pertanto se crei un messaggio con il carattere “0x00” all’interno, verrà inviata solo la parte di messaggio prima del carattere. Per ovviare al problema ho realizzato una nuova versione della libreria in cui vi è la nuova FB ModemSMSSend_v2 di invio SMS (Estratto manuale). A differenza della precedente questa FB ha un nuovo parametro di input TLgt che se definito indica il numero di caratteri da inviare del testo.
Ecco un esempio di programma ST per inviare un SMS del tipo “The @ char”, come si vede si prepara una stringa con il carattere “_” al posto del “@” e poi prima di inviare il messaggio si sostituisce il carattere con “0x00”.
SMSSend.Number:=ADR(‘+39335123456’); (* Phone number *)
SMSSend.TLgt:=10; (* Text length *)
Message:=’The _ char’; (* Message string *)
Ptr:=ADR(Message)+4; (* Auxiliary pointer *)
@Ptr:=0; (* Carico codice carattere @ *)Luglio 18, 2013 alle 3:28 pm #37710Sergio BertanaAmministratore del forumAggiungo un programma di esempio (Stampa, Download sorgente), che attivando l’ingresso Di00M00 esegue l’invio del messaggio SMS con il carattere “@” al numero di telefono definito.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.