Piloter une carte DMX en Javascript
Bonjour,
Je souhaite développer une application, en JavaScript, capable de commander une carte DMX en JavaScript.
Vous trouverez tous les détails de ladite carte sur
https://www.velleman.eu/products/view/?id=407510
La carte propose déjà une application de commande. Très facile d'accès.
Il m'a suffit de taper 192.168.0.63 dans la barre d'adresse de mon navigateur, pour la piloter.
Mon programme serait déployé sur mon LAMP localhost, et devrait pouvoir s'adresser à la carte, dont il connaît l'IP
Sauriez-vous m'expliquer comment, une application Javascript déployée sur une machine, pourrait piloter une carte DMX installée sur une autre IP du même LAN ?
Merci pour vos conseils.
Christian.
Contrôler la carte DMX par une requête Ajax ?
Faute de pouvoir contrôler directement la carte DMX par une requête ajax, voilà ce que j'ai essayé, sans succès.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?php
// Commande telnet de contrôle de la carte DMX
if
(
isset($_POST['dmxIp']) && strlen($_POST['dmxIp']) > 0 &&
isset($_POST['dmxPort']) && strlen($_POST['dmxPort']) > 0 &&
isset($_POST['relay']) && strlen($_POST['relay']) > 0
)
{
//echo('Relays : '.$_POST['relay']);
$fp = stream_socket_client('tcp://'.$_POST['dmxIp'].':'.$_POST['dmxPort'], $errNo, $errStr, 5);
if($fp)
{
// Exécuter la commande
while(!feof($fp))
{
echo(fgets($fp));
}
fclose($fp);
}
else
{
echo('Erreur '.$errNo.' '.$errStr);
}
}
else
{
echo('Bad DMX IP and port params');
}
?> |
Puisque les requêtes Ajax doivent provenir de la carte DMX elle-même, sinon, elles violent la same origin policy
Dans $_POST, les indices
dmxIp = l'adresse 192.168.x.x de ma carte DMX
dmxPort = le port 9760
relay = une chaîne binaire de 8 octets, correspondant à l'état ON / OFF des relais. Par exemple "01010101"
ici, relay n'est pas (encore) utilisé. Le but était simplement d'établir le contact avec la carte.
Ce code n'est donc pas encore fonctionnel.
En réponse, j'obtiens un timeout dépassé.