Bonjour,
Je cherche à envoyer des SMS sur apparition d'alarme dans un système insustriel.
D'un côté, j'ai un poste d'acquisition qui met les alarmes dans une base de données. Un programme en C# scrupte une base de données, quand une ligne s'ajoute il envoie un SMS à une liste d'opérateur.
J'ai donc un PC en Windows Server 2019 qui fait l'acquisition des points, relié en IP à une carte MOXA (NPort 5110) qui sert de convertisseur IP/Série, reliée à un modem Ercogener 400e.
Dans mon programme, il y a la ligne suivante qui sert à envoyer le SMS avec des commandes AT.:
client1.ecogener.Send("AT+CMGS=\"" + AS_NumeroSMS + "\"\r" + ToSmsFormat(text) + "\x1A");
"\"\r" permet de faire un retour charriot,
"\x1A" c'est un Ctrl+Z.
Or, il n'y a qu'un SMS sur 2 qui part. Ce n'est pas aléatoire, c'est exactement 1/2. La raison pour laquelle le SMS n'est pas envoyé quand il ne part pas est que le Modem n'a pas reçu de Ctrl+Z. Il de met donc en attente.
Je pense que le programme est bon parce qu'il fonctionne avec d'autres équipements (pas de MOXA, un autre MODEM...). Qu'en pensez-vous? La MOXA peut-elle m'avaler un caractère (le Ctrl+Z)?
Partager