C intégré: vérifiez la connexion Internet

8

Existe-t-il un moyen de vérifier si mon périphérique intégré dispose d'une connexion fonctionnelle (c'est-à-dire qu'il peut atteindre le WAN)? Mon appareil n'a pas de RTOS, je ne peux donc pas compter sur les fonctionnalités du système d'exploitation comme le ping. Je peux voir que le DHCP donne une IP correcte à mon appareil, mais ce n'est pas vrai à 100% que, avec une IP correcte, je peux ensuite atteindre par exemple www.google.com.

J'ai déjà fait quelques recherches et il existe différentes approches:

  1. c'est impossible
  2. c'est une question stupide
  3. solutions de contournement de toutes sortes, mais je me sens confiant en ce qui concerne SO donc je vais essayer.

Donc, si c'est la question a 1) ou 2) comme réponses, je vais le supprimer et ça va.

panc_fab
la source
Pourquoi utilisez-vous l'appareil? La connexion Internet vérifie-t-elle que la connexion fonctionne lorsque votre fonctionnalité principale ne fonctionne pas?
Helmar
@Helmar Je dois être sûr que la connexion Internet fonctionne car j'ai besoin d'accéder à l'appareil depuis Internet et d'échanger des données avec lui
panc_fab
1
Je ne suis pas sûr de comprendre ce que vous essayez de faire. Votre objectif est d'accéder à tout moment à distance à Internet depuis l'appareil, n'est-ce pas? Vous avez donc déjà un composant actif sous votre contrôle sur Internet. Pourquoi n'essayez-vous pas d'atteindre ce composant et de faire tout ce que vous prévoyez pour rétablir la connectivité en cas d'échec?
Helmar
Oui, je suppose que ce que vous dites pourrait être la chose la plus intelligente à faire ... parfois je me perds dans des problèmes qui ne le sont pas, je suis tout à fait nouveau dans l'environnement embarqué et je m'embrouille facilement. Je vous remercie! Je posterai une réponse plus tard pour clore la question.
panc_fab

Réponses:

4

Merci les gars pour le soutien. J'ai finalement utilisé la méthode décrite par Helmar dans laquelle j'essaie simplement d'atteindre la cible souhaitée et de voir. Si je peux obtenir une réponse de la cible, je sais que ma connexion est vivante et fonctionne, sinon je parviens à déconnecter l'appareil et à réessayer avec une nouvelle connexion.

panc_fab
la source
3

Je ne peux pas compter sur les fonctionnalités du système d'exploitation comme le ping.

Implémentez vous-même le ping. Vous pouvez probablement trouver un exemple pour votre plateforme.

Ou contactez un service via un autre protocole que vous pouvez prendre en charge; ne présumez tout simplement pas que le service restera disponible pendant la durée de vie de l'appareil, sauf s'il s'agit d'un serveur que vous gérez.

J'ai besoin d'accéder à l'appareil depuis Internet et d'échanger des données avec lui

Si votre objectif réel est d'autoriser le trafic entrant , c'est généralement une mauvaise idée et difficile pour les utilisateurs finaux d'activer leurs réseaux. Au lieu de cela, vous établissez / maintenez généralement une connexion sortante vers un serveur vers lequel il pourrait tunneler ou relayer le trafic entrant filtré destiné à votre appareil. Vous pouvez facilement équiper le code qui fait / maintient / reconnecte ce tunnel avec un mécanisme de sortie pour indiquer sa santé.

Chris Stratton
la source