RS-232 Vers UDP/IP

Bonjour, j'essaie depuis quelque jour de développer un programme pour mon arduino uno. Le but et d'envoyer tout ce qui passe sur le port serial (Venant d'un max3232) et l'envoyer par UDP. Et sur le PC je le renvoie dans un port COM virtuel.
Le but est de manager un onduleur qui a un port RS 232 a distance via son application. (Eaton Intelligent power manager).
Après avoir fait un code plutôt simpliste qui renvoie tout directement mon logiciel ne détecte pas l'onduleur.
Déjà est t'il possible de faire sa ? Et a toutt hasard n'aurez vous pas quelque bouts de code fonctionnel car je bloque un peu sur mon problème...

Merci

Tu n'as pas dit sur quel support tu veux faire passer l'UDP. Ethernet ? Wi-FI ? Autre ?
Un Arduino de base comme la Uno ne sait pas faire de l'ethernet ou du Wifi.
C'est quoi ta carte ?

C'est quoi ton montage ? (il faut un adaptateur entre le RS232 et l'Arduino, par exemple)

Merci de votre réponse. J'ai oublié de préciser tout sa...
Sa serait par ethernet avec un Arduino uno. J'ai le shield ethernet et le max 3232. En fait sur mon code j'arrive bien a tout envoyé en UDP mais le logiciel ne réagi pas de l'autre côté ...

Tu as vérifié les caractéristiques de la ligne série de l'onduleur ?
Baud rate, bits de stops, parité ?

Cette question manque de précision.
Quel onduleur ?

Je suppose que si l'onduleur dispose d'une ligne série une application série doit être livrée avec.
Transmettre des données provenant d'une ligne série à travers UDP suppose de connaître la teneur des échanges, aussi bien sur la ligne série que sur Ethernet.

C'est surtout d'exploiter la trame reçue par UDP qui demande de connaître son contenu.
On peut concevoir une "passerelle ignorante" qui fait passer les octets de la trame, et c'est tout.

Oui mais rien ne dit que les trames UDP seront comprises par l'onduleur, et réciproquement.

Déjà on ne sait pas si ça circule dans les 2 sens, ou un seul.

Deja pour commencer j'ai finalement essayer avec un ESP8266. Mais toujours le même problème ...

Quoi qu'il en soit l'onduleur et un MGE Pulsar 1000. Je trouve aucune info sur le baudrate, etc...
L'application est Eaton intelligent power manager qui est utilisé pour gérer l'onduleur.
Les data circule dans les deux sens il me semble.
En revanche je commence a pencher vers un mauvais baud rate (Corriger moi si je me trombe)

Voici ce qui passe par le port série lorsque sur l'application je lance une "Decouverte des noeud" (Recherche des onduleur connecter). J'ai lancer la recherche après l'affichage de l'adresse IP.

Que pensez vous de sa ?

Merci pour votre aide

sans les caractéristiques précises de la ligne série (il n'y a pas que le baud rate !), je te prédis des difficultés (comme disait HAL9000)

Les caractères affichés sur la console peuvent être non imprimables (binaire). Il ne s'agit pas forcément d'une erreur de baudrate.
Je suppose que c'est toi qui as écrit cette portion de code, donc à toi de les afficher correctement.

D'autre part pourquoi "Starting TCP server" alors que le sujet de la discussion porte sur UDP ?
Une erreur d'affichage ?

Pour le fait qui est marqué Starting TCP. C'est que en passant sur l'esp8266 j'ai préféré le coder en TCP. Je sait pas si sa change quelque chose a mon problème ?

Après le fait que sa ne soit pas lisible dans le Moniteur ne veut pas dire que c'est illisible pour l'onduleur ?
Je suis un peut perdue sur comment m'y prendre et trouver une solution.

TCP implique une notion de connexion, ce qui n'est pas le cas d'UDP.

L'onduleur accepte des commandes, en clair ou binaire. Sans avoir de détails sur la grammaire à utiliser, difficile d'en dire quoi que ce soit.
Il est possible d'afficher les commandes reçues en binaire, plutôt qu'afficher les caractères tels quels. Mais cela n'avancera pas à grand chose si l'on est incapable de les interpréter.

Deux informations manquent :

  • spécification du protocole applicatif TCP ou UDP
  • spécification du protocole série
    Sans ces informations, il faut faire de la rétro-ingénierie, c'est à dire essayer de deviner la signification des trames échangées.
    Bon courage ...

Est ce que je pourrais connaitre d'une façon ou d'une autres les paramètres d'échange en connectant le PC directement avec un convertisseur RS232. Et en utilisant l'application eaton ?
Et du coup je suis bien en TCP. La connection s'effectue parfaitement. Par ailleurs les trame reçu affiché provienne de la liaison TCP. Donc a ce niveau pas de soucis.

Je ne connais pas l'application Eaton, ni ses possibilités de connexion aux onduleurs, série ou réseau.

L'application permet les deux. Mais mon but et de faire une application qui recupere le rs232 et le renvoie sur un port com virtuel. Qui fera croire a l'application que celui ci est relié directement par RS232.

Qu'est ce te qui permet de croire que les trames échangées en liaison série et par réseau sont identiques ?
Voir #12

Justement je ne fais pas comme sa. En fait l'esp8266 créé un serveur TCP. Et côter PC j'ai une application qui renvoie tout ce que le serveur TCP recois vers un port série virtuel. Et devrait donc faire croire a l'application Eaton que l'onduleur et connecté en RS232.

Est-ce que l'onduleur est directement reconnu par l'application Eaton en dialogue série ?

Oui sa fonctionne directement.