Question

J'ai un robot que je contrôle via un navigateur. Une page avec des boutons pour aller de l'avant, marche arrière, etc est écrit en PHP hébergé sur un ordinateur de bord. Le PHP est simplement envoyer des caractères ASCII sur une connexion série à un microcontrôleur. Quoi qu'il en soit, je dois mettre en œuvre un dispositif de sécurité de sorte que lorsque la personne qui conduit est déconnectée, le robot s'arrête. La seule chose que je peux penser à faire est de ping la personne sur la page Web ou quelque chose, mais je suis sûr qu'il ya une meilleure façon que cela. Le robot est connecté soit par l'intermédiaire d'un réseau ad hoc ou un réseau sans fil régulier qui est connecté à Internet. Il est évident que si je vais avec la méthode ping alors il devra y avoir un délai entre le temps réel et déconnecté quand il se rend compte qu'il a été déconnecté. Je voudrais que ce délai est un petit possible, quelle que soit la méthode utilisée. Je vous en serais reconnaissant des idées sur la façon de le faire.

Était-ce utile?

La solution

Puis-je vous suggère d'utiliser un objet simple flash intégré dans le navigateur Web pour ouvrir un connexion socket à un serveur sur le robot? Le serveur peut être écrit dans une langue appropriée - même PHP (toux).

Ensuite, il est facile de détecter immédiatement lorsque la connexion tombe en panne, et mettre en œuvre votre approche de sécurité.

HTTP est un protocole idéal pour la commande de robot.

Bonne chance!

Autres conseils

Pinging un client Web est peu fiable, vous devez prendre en compte, que l'adresse IP du client peut changer.

Par contre, vous pourriez émuler un « homme mort bouton » via Ajax. Laissez la page envoyer une commande définie chaque maintenant et puis (peut-être tous les 5 à 10 secondes). Si le robot ne reçoit pas le message pendant un certain temps, il peut arrêter. Le script Ajax pourrait fonctionner en arrière-plan afin que l'utilisateur contrôle ne remarquerez même pas quoi que ce soit.

Cela signifie bien sûr que votre robot a besoin d'avoir un compteur qui est incrémenté à chaque seconde et réinitialiser lorsque le message est reçu. Le moment de la variable de la minuterie est trop élevée, arrêt complet

Tout ce que je peux penser est d'inclure du code ajax dans votre code HTML que « pings » votre serveur chaque seconde X. Je crois que ce que Facebook Chat fait savoir si vous êtes ou non encore en ligne.

HTML 5 prises Web pourrait être la solution que vous cherchez, mais vous devez considérer qu'il ne sera pas mis en œuvre par la plupart des navigateurs de vos utilisateurs.

Vous trouverez peut-être cet article intéressant: http: // www.infoq.com/news/2008/12/websockets-vs-comet-ajax.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top