|
Iniciado por Robert, ago., 02 2018 9:43 AM - 6 respostas |
| |
| | | |
|
| |
Membro registado 6 mensagems |
|
Publicado em agosto, 02 2018 - 9:43 AM |
Bonjour à tous. Je souhaiterais avoir vos conseils car j'utilise windev 20 et j'ai du mal à piloter un modem via le port série. Le modem est un générique avec contrôleur SIM900 . Il attends des commandes AT. Le but est d'envoyer un SMS lorsqu'on clique sur un bouton . Pour cella j'utilise la commande AT : AT+CMGS = "Num_mobile" [enter] A ce moment le modem fait apparaitre le caractère > et attend le message Pour valider le contenu il faut lui envoyer le caractère substitute [ CTRL + Z ] Pour finir le modem renvoi la réponse : +CMGS: 40 ( ou 40 correspond à sa fille d'attente il me semble bref rien d'important ) [ retour ligne] OK
Avec un terminal ça fonctionne parfaitement on peut enchainer les SMS . Mon problème dans Windev est que lors du lancement du programme, après remplissage des valeurs le SMS est bien envoyé. Cependant si on recommence plus rien ne se passe coté modem . Pourtant lorsque je me connecte avec un terminal externe sur mon PC, le programme renvoie bien les commandes AT . Quelqu'un pourrait-il m'expliquer ce qui va pas dans ma méthode ? J'ai fait 2 boucles car il faut faire une petite pause (500ms à 1 sec) entre les 2 chaines autrement le modem n'avait pas le temps le tout traiter . J'ai un niveau windev très faible également D'avance Merci
Voici le code que j'ai mis sur : Clic sur BTN_EnvSMS :
NumPort est un entier = 9
TailleEcrite est un entier TailleBufferEntrée est un entier = 500 TailleBufferSortie est un entier = 500
TempsAttentePort est un entier = 100 ChaîneAEcrire est une chaîne = "AT+CMGS=""" + SAI_Numero_Tel + """" + RC Monmessage est une chaîne = SAI_Message + SAI_RefDemande + Charact(26)
SI sOuvre(NumPort, TailleBufferEntrée, TailleBufferSortie, TempsAttentePort) = Faux ALORS Erreur("Erreur d'ouverture de COM" + NumPort) SINON SI sFixeParamètre(NumPort, 9600, 1, 8, 0,Faux,Faux,Vrai) = Faux ALORS Erreur("Erreur de paramétrage de COM" + NumPort) SINON BOUCLE TailleEcrite = sEcrit(NumPort, ChaîneAEcrire) SI TailleEcrite = 0 ET ChaîneAEcrire <> "" ALORS SI sDansFileSortie(NumPort) < TailleBufferSortie ALORS SI OuiNon("Impossible d'écrire sur le port" + ... "COM" + NumPort,... "Vérifier qu'un périphérique est prêt" + ... "et correctement connecté.", ... "Voulez-vous ré-essayer ?") = Faux ALORS SORTIR FIN SINON Multitâche(200) SI sDansFileSortie(NumPort) >= TailleBufferSortie ALORS SI OuiNon("Impossible d'écrire sur le port" + ... "COM" + NumPort, ... "Vérifier qu'un périphérique est prêt" + ... "et correctement connecté.", ... "Voulez-vous ré-essayer ?") = Faux ALORS SORTIR FIN FIN FIN SINON SI TailleEcrite = Taille(ChaîneAEcrire) ALORS SORTIR FIN FIN FIN FIN sFerme(NumPort) FIN
Multitâche(100)
SI sOuvre(NumPort, TailleBufferEntrée, TailleBufferSortie, TempsAttentePort) = Faux ALORS Erreur("Erreur d'ouverture de COM" + NumPort) SINON SI sFixeParamètre(NumPort, 9600, 1, 8, 0, Faux,Faux,Vrai) = Faux ALORS Erreur("Erreur de paramétrage de COM" + NumPort) SINON BOUCLE TailleEcrite = sEcrit(NumPort, Monmessage) SI TailleEcrite = 0 ET Monmessage <> "" ALORS SI sDansFileSortie(NumPort) < TailleBufferSortie ALORS SI OuiNon("Impossible d'écrire sur le port" + ... "COM" + NumPort,... "Vérifier qu'un périphérique est prêt" + ... "et correctement connecté.", ... "Voulez-vous ré-essayer ?") = Faux ALORS SORTIR FIN SINON Multitâche(200) SI sDansFileSortie(NumPort) >= TailleBufferSortie ALORS SI OuiNon("Impossible d'écrire sur le port" + ... "COM" + NumPort, ... "Vérifier qu'un périphérique est prêt" + ... "et correctement connecté.", ... "Voulez-vous ré-essayer ?") = Faux ALORS SORTIR FIN FIN FIN SINON SI TailleEcrite = Taille(Monmessage) ALORS SORTIR FIN FIN FIN FIN sFerme(NumPort) FIN |
| |
| |
| | | |
|
| | |
| |
Membro registado 948 mensagems Popularité : +30 (92 votes) |
|
Publicado em agosto, 02 2018 - 6:43 PM |
Coucou,
1) Tu compiles ton project en 32bits ou 64bits ? 2) Charact(26) // ctrl + z = ascii 26 C pas un EOF plutôt ? 3) Il faut que tu place tes multitaches en valeur négative
-- In üs we trust - #92iMensagem modificada, agosto, 02 2018 - 6:43 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 6 mensagems |
|
Publicado em agosto, 02 2018 - 8:08 PM |
Bonjour, Merci pour votre réponse . Compilation 32bits et la validation se fait bien par CTRL+Z (ascii 26) Après des centaines de combinaisons dans Windev sans succès j'ai remarqué que le paramétrage de la vitesse du port du modem SIM900 était en automatique. Elle se calait automatiquement après la chaine AT et comme mon Putty était un 9600 par défaut et que manuellement ça marchait j'ai utilisé la même valeur dans Windev . Bref j'ai résolu le problème en utilisant le paramétrage suivant : AT+IPR=115200 // Set baud rate to 115200 bps Le plus important étant de fixer la vitesse du port à une vitesse fixe . Au moins ça pour servir de "cas d'école" pour les autres utilisateurs Merci à tous |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 05 2018 - 12:10 AM |
Robert a écrit :
Bonjour, Merci pour votre réponse . Compilation 32bits et la validation se fait bien par CTRL+Z (ascii 26) Après des centaines de combinaisons dans Windev sans succès j'ai remarqué que le paramétrage de la vitesse du port du modem SIM900 était en automatique. Elle se calait automatiquement après la chaine AT et comme mon Putty était un 9600 par défaut et que manuellement ça marchait j'ai utilisé la même valeur dans Windev . Bref j'ai résolu le problème en utilisant le paramétrage suivant : AT+IPR=115200 // Set baud rate to 115200 bps Le plus important étant de fixer la vitesse du port à une vitesse fixe . Au moins ça pour servir de "cas d'école" pour les autres utilisateurs Merci à tous
Bonjour. Est ce que le message envoyer contient des caractères accentués ou des chiffres. Merci |
| |
| |
| | | |
|
| | |
| |
Membro registado 6 mensagems |
|
Publicado em agosto, 28 2018 - 3:22 PM |
Aeh a écrit :
Bonjour. Est ce que le message envoyer contient des caractères accentués ou des chiffres. Merci
Bonjour, Oui le message contenait bien des caractères accentués mais dans mon cas le problème venait principalement du mode vitesse connexion auto sur le SIM900 . Une fois le vitesse fixée à 115200 le modem à fonctionné parfaitement |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 02 2024 - 9:32 PM |
Bonjour à tous.
Je voudrais savoir pourquoi le code est en double ?. A moi j'ai mal lue.
Il me semble le code posté comprend deux mêmes blocs qui font la même chose' |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.353 mensagems Popularité : +93 (137 votes) |
|
Publicado em abril, 03 2024 - 9:07 AM |
Salut Guillaume Non car il faut tenir compte de tous les si sinon |
| |
| |
| | | |
|
| | | | |
| | |
|