Status.xml

bonjour

j’aimerai utiliser deux cartes ipx 800v3 (carte 1–>192.168.0.2 et carte 2–>192.168.0.3 )mais commandés avec le web de la carte 1 cela me permetterait d’augmenter le nombre d’entrée sortie

Pour commander les relais de la carte 2 avec la carte 1 pas de problème exemple : 192.168.0.3/leds.cgi?led=3

Par contre impossible de lire les info de la carte 2 , plus particulièrement le status.xml de la carte 2

Je pensais que :
setTimeout(« newAJAXCommand(‹ http://192.168.0.3/status.xml ›, updateStatus, true) »,500)

serait la solution mais cela ne fonctionne pas

quelqu’un a une idée?

Benoit

Avez-vous mis un mot de passe ? Si oui c’est :
setTimeout(« newAJAXCommand(‹ http://compte:passwd@192.168.0.3/status.xml ›, updateStatus, true) »,500)

Sinon il y a https://sourceforge.net/p/multicardipx800/ avec un serveur Web

Non je n’ai pas mis de mot de passe

benoit

C’est normal, de mémoire il s’agit d’un problème de cross-domain, bridé par AJAX pour raison de sécurité. En gros, l’adresse 192.168.0.2 (équivalente à un domaine) ne peut aller lire par AJAX un flux XML hébergé par un autre domaine (en l’occurence 192.168.0.3). Malheureusement je crois qu’il n’y a à ce jour pas de solution par AJAX, le problème a déjà été évoqué qq part dans ce forum. Il vous faut développer vos propres scripts (PHP, Python ou autre) ou utiliser une application comme celle développée par Thomas ci-dessus.

Pour cross domain lire : http://www.siteduzero.com/tutoriel-3-56320-l-xmlhttprequest-cross-domain.html

Bonjour

j’ai laissé tombé la solution AJAX et me suis penché sur la solution PHP

J’arrive a me connecter sur mes cartes avec un PC distant et WAMPSERVEUR avec une connexion socket, par contre impossible de faire fonctionner le mème script si je l’herberge chez free.fr me renvoie une erreur de connexion

$address = « xxx.xxx.xxx.xxx »;
$port = 9870;
$socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $address, $port);

Est ce que quelqu’un a déja utilisé le FAI free en php pour une connection ipx?
(dans phpinfo sockets support est bien activé )

merci de vos réponses

Utilisez le script ici Faire du M2M en PHP pour voir le message d’erreur ou voir où se situe le blocage. Peut-être que le port 9870 est bloqué par Free ??

Avec le scipt donné j’ai:

Warning: Unable to open socket in /mnt/154/sdb/5/b/benoit/ipxlionel.php on line 27
Warning: socket_write() unable to write to socket [32]: Broken pipe in /mnt/154/sdb/5/b/benoit/ipxlionel.php on line 38
Warning: socket_read() unable to read from socket [107]: Transport endpoint is not connected in /mnt/154/sdb/5/b/benoit/ipxlionel.php on line 41
Tentative de connexion à 10.43.207.8 par le port 9870…
La connexion a échoué : Success
Envoi GetCount1 Ã la carte IPX800
Réponse :
Connexion terminée

J’ai le meme message en mettant mon adresse ip a la place de 10.43.207.8 le port de la box est bien redirigé car cela fonction avec un ordinateur a mon travail

C’est donc que le socket ne se crée même pas, et si la connexion fonctionne depuis votre ordi au travail, c’est que le problème vient de free. Je ne sais trop quoi vous dire, à part contacter free en leur faisant part de votre problème, fouiller dans leurs forums, etc…