2015-08-27 1 views
0

Imaginez que je dise 6 dispositifs intelligents tous reliés ensemble bout à bout avec une liaison de données (pourrait être deux ports série par périphérique). Chaque appareil a un identifiant unique programmé et nous voulons que chaque appareil fonctionne où il se trouve dans la chaîne des appareils. Donc, avec 6 appareils, ma marguerite pourrait ressembler à:Y at-il un algoritham bien connu pour découvrir l'ID de chaque périphérique dans un réseau de marguerite?

- [901] --- [905] --- [902] --- [903] --- [906] --- [904] -

À la fin de l'algorithme de «découverte», chaque appareil aurait la carte ci-dessus et savoir à quel périphérique il est connecté à gauche et à droite, le cas échéant pour les périphériques de fin. Chaque appareil utiliserait le même logiciel et serait identique l'un à l'autre, à l'exception de l'identifiant unique.

Existe-t-il un moyen facile de le faire sans que cela ne devienne trop compliqué? Le nombre de périphériques dans la chaîne peut être variable, mais un maximum de 6.

Répondre

0

Cela semble très similaire à ARP resolution. Comme il n'y a qu'un maximum de 6 dispositifs, un algorithme de base de diffusion de la requête au réseau (c'est-à-dire chaque dispositif) serait probablement le moyen le plus simple. De même, passer linéairement la requête ne prendrait pas beaucoup plus de temps non plus.

S'il s'agit de périphériques réseau avec des adresses MAC, vous pouvez même profiter de ces ID uniques au lieu de créer les vôtres, si cela est utile.

+0

La diffusion peut être activée si chaque nœud transmet tous les messages qu'elle reçoit. Toutefois, si les liaisons sont semi-duplex (RS485), un mécanisme est également requis pour gérer les collisions de données et les tentatives. C'est à dire lorsque deux nœuds envoient des messages en même temps sur le même fil. – user3314691