Bonjour,
Certain d'entre vous on déjà eu à traiter des trames udp sur beaglebone black? Je rencontre des difficultés à recevoir la totalités des données..
Au plaisir d'échanger!
Bonjour,
Certain d'entre vous on déjà eu à traiter des trames udp sur beaglebone black? Je rencontre des difficultés à recevoir la totalités des données..
Au plaisir d'échanger!
Salut,
Le principe d'udp, c'est que justement, tu ne garantis pas la livraison
Salut Becket,
Tout à fait d'accord. Mais je pense que le problème n'est pas la, je m'explique:
Sur une machine windows, un logiciel envoi un chiffre qui débute à 1 et qui s'incrémente à une fréquence de 20HZ via une socket udp. Sur ma beaglebone via un programme en c++ j'ouvre une socket udp qui reçois la trame, je copie la trame dans un buffer puis j'imprime ce buffer à une fréquence supérieure que 20Hz. C'est la que je peux constater que mon code prend de la latence car il affiche les nombres s'incrémentant mais retardant petit à petit la croissance comparé à ce que génère le programme sur l'autre machine.
les machines sont reliés via un câble ethernet.
Sur la documentation de la carte B.B. il est indiqué ceci "The BeagleBone Black is equipped with a 10/100 Ethernet interface". J'en déduit qu'il peut donc atteindre les 100mbs théoriquement. Mon programme ne générant uniquement des caractère il ne peut saturer le bus.
Ca mérite un peu plus de détails.
Quelques approches possibles pour troubleshooter le truc:
- essayez en TCP
- faites des captures du trafic avec tcpdump ou Wireshark des deux côtés pour voir ce qui se passe - vous pouvez très bien regarder le trafic en direct sur le BB avec tcpdump. Franchement c'est une des meilleures options pour troubleshooter des problèmes réseau de ce genre.
- regarder par exemple avec la commande ifconfig si des packets sont "droppés" sur le BB
- envisager la possibilité que le câble est défectueux. Un bête truc: une commande du genre ping -t 100 vers une cible quelconque puis contrôler qu'il y a zéro perte et que les temps de réponse restent homogènes. Normalement ça devrait être de l'ordre de 1 milliseconde.
- envisager la possibilité qu'il y a un bug dans votre application: testez-là sur un PC ou un autre device
Bonjour Binarygirl,
Merci je reviens rapidement avec le début en suivant vos conseils,
Pour information le programme générant l’incrémentation est Rtmaps avec une brique d’incrément un convertisseur texte to stream et une socket udp.
Le flux censé être traité est un gps rtk qui envoie différentes informations, gga, vtg… les données étant conséquent ils débordent de la socket udp selon l’affichage de la socket udp via un printf.
Faite une copie du trafic des deux coté ( wireshark, tcpdump ).
Postez les deux fichiers ici
je regarderais
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager