En M2M avec l’ipx la réponse reçue est lors d’une demande de valeur de compteur est bien conforme a ce qui est prévu :
Tentative de connexion à 192.168.1.249 par le port 9870…
Connexion ok pour 192.168.1.249.
Envoi GetCount1 Ã la carte IPX800
Response : GetCount=3021
Connexion out.GetCount=3021
Mais comment faire pour récupérer seulement la valeur de 3021 dans mon exemple ?
Voici le code je j’utilise source du forum.
En réponse j’obtiens GetCount1=valeur du compteur et non pas la valeur du compteur uniquement
<?php
/****************************************************************************
* Ouverture d'un socket TCP en PHP pour communiquer avec une carte IPX800 *
* Ces quelques lignes vous permettront d'avoir un client TCP capable *
* d'envoyer des ordres du protocole M2M à un carte GCE IPX800, grâce *
* au PHP. Moins lourd, plus rapide et plus compatible que l'AJAX. *
* *
* Script libre de droit. Merci de ne pas modifier cet en-tête et de ne *
* pas retirer les commentaires. *
* Créé par Lionel FÉVRIER - LionelF sur le forum de GCE Electronics *
****************************************************************************/
// Pour avoir un retour si qqch ne va pas dans le script
error_reporting(E_ALL);
// Identifiants du client : c'est ici que vous rentrez l'adresse de votre carte IPX800 sur votre réseau
// Vous pouvez également modifier le port TCP prévu par défaut, si vous l'avez changé
$address = "192.168.1.248";
$port = 9870;
// Ouverture du socket TCP
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket == false) echo "La création du socket a échoué : " . socket_strerror(socket_last_error());
// Lancement de la connexion au serveur TCP de la carte IPX800
$text = "Tentative de connexion à $address par le port $port... ";
$result = socket_connect($socket, $address, $port);
if ($result == false)
{ $text .= "La connexion a échoué : " . socket_strerror(socket_last_error($socket)) . " "; }
else
{ $text .= "Connexion ok pour $address. "; }
// C'est ici que l'on indique la commande M2M pour envoyer au serveur, lire compteur 1 dans cet exemple
$M2M = "GetCount1";
// On envoie la commande au serveur
$text .= "Envoi $M2M à la carte IPX800 ";
socket_write($socket, $M2M, strlen($M2M));
// On lit alors la réponse du serveur
$input = socket_read($socket, 64);
$text .= "Réponse : $input ";
// On clôture le socket pour éviter une connexion permanente
socket_close($socket);
$text .= "Connexion terminée.";
// On affiche le récapitulatif du script, si tout va bien... :slight_smile:
//echo $text;
echo $input;
?>
Donc vous utilisez PHP. Donc il vous faut « couper » le GetCount= qui ne vous convient pas. Heureusement PHP fait ça très bien. Voir lien. http://fr.php.net/substr