Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Harpo
On Tue, 28 Nov 2006 13:05:53 -0800, wrote:
Bonjour,
je souhaite envoyer des données plus ou moins complexes par une liaison série (via un microcontrôleur (émetteur) et un PC (récepteur))
ces données pourraient être dans un tableau (à deux dimensions) ou dans une structure contenant des listes (tableau à 1 dimension)
je ne sais pas trop comment procéder.
En C++ j'aurais tendance à utiliser la bibliothèque Boost http://www.boost.org/libs/serialization/doc/index.html
En Java ou C# la sérialisation XML.
Il y a au moins 2 problèmes, 1- la gestions de ports série 2- les données que tu veux échanger par ce port.
1- dépends de l'OS, ça se fait généralement sur des machines où il y a des ports série.
2- Je ne connais pas Boost et je ne peux donc pas juger. Je ne suis pas un fan de XML, mais ça à l'avantage d'être une espèce de standard, on peut facilement représenter des tableaux à n dimensions en XML. Tu traduis tes tableaux en XML, tu les balances sur le port et tu les récupères de l'autre coté.
C'est surtout un problème de représentation des données que tu balances et reçois, c'est un protocole de présentation, il faut définir de manière formelle de cette représentation.
C'est bien la première fois que je vante XML, mais tu trouveras dans la plupart des langages des librairies pour le parser. Il y a surement mieux mais c'est un choix qu'on ne pourra guère te reprocher.
Bref, pour le moment ce n'est pas une question sur le langage C...
-- stats usenet : http://patrick.davalan.free.fr/ustat/ home page : http://patrick.davalan.free.fr/
On Tue, 28 Nov 2006 13:05:53 -0800, noone@nowhere.undef wrote:
Bonjour,
je souhaite envoyer des données plus ou moins complexes par une
liaison série
(via un microcontrôleur (émetteur) et un PC (récepteur))
ces données pourraient être dans un tableau (à deux dimensions) ou
dans une structure
contenant des listes (tableau à 1 dimension)
je ne sais pas trop comment procéder.
En C++ j'aurais tendance à utiliser la bibliothèque Boost
http://www.boost.org/libs/serialization/doc/index.html
En Java ou C# la sérialisation XML.
Il y a au moins 2 problèmes, 1- la gestions de ports série 2- les
données que tu veux échanger par ce port.
1- dépends de l'OS, ça se fait généralement sur des machines où il y a
des ports série.
2- Je ne connais pas Boost et je ne peux donc pas juger.
Je ne suis pas un fan de XML, mais ça à l'avantage d'être une espèce
de standard, on peut facilement représenter des tableaux à n dimensions
en XML. Tu traduis tes tableaux en XML, tu les balances sur le port et tu
les récupères de l'autre coté.
C'est surtout un problème de représentation des données que tu balances
et reçois, c'est un protocole de présentation, il faut définir de
manière formelle de cette représentation.
C'est bien la première fois que je vante XML, mais tu trouveras dans la
plupart des langages des librairies pour le parser. Il y a surement mieux
mais c'est un choix qu'on ne pourra guère te reprocher.
Bref, pour le moment ce n'est pas une question sur le langage C...
--
stats usenet : http://patrick.davalan.free.fr/ustat/
home page : http://patrick.davalan.free.fr/
je souhaite envoyer des données plus ou moins complexes par une liaison série (via un microcontrôleur (émetteur) et un PC (récepteur))
ces données pourraient être dans un tableau (à deux dimensions) ou dans une structure contenant des listes (tableau à 1 dimension)
je ne sais pas trop comment procéder.
En C++ j'aurais tendance à utiliser la bibliothèque Boost http://www.boost.org/libs/serialization/doc/index.html
En Java ou C# la sérialisation XML.
Il y a au moins 2 problèmes, 1- la gestions de ports série 2- les données que tu veux échanger par ce port.
1- dépends de l'OS, ça se fait généralement sur des machines où il y a des ports série.
2- Je ne connais pas Boost et je ne peux donc pas juger. Je ne suis pas un fan de XML, mais ça à l'avantage d'être une espèce de standard, on peut facilement représenter des tableaux à n dimensions en XML. Tu traduis tes tableaux en XML, tu les balances sur le port et tu les récupères de l'autre coté.
C'est surtout un problème de représentation des données que tu balances et reçois, c'est un protocole de présentation, il faut définir de manière formelle de cette représentation.
C'est bien la première fois que je vante XML, mais tu trouveras dans la plupart des langages des librairies pour le parser. Il y a surement mieux mais c'est un choix qu'on ne pourra guère te reprocher.
Bref, pour le moment ce n'est pas une question sur le langage C...
-- stats usenet : http://patrick.davalan.free.fr/ustat/ home page : http://patrick.davalan.free.fr/
Laurent Pointal
On Tue, 28 Nov 2006 13:05:53 -0800, wrote: C'est bien la première fois que je vante XML, mais tu trouveras dans la plupart des langages des librairies pour le parser. Il y a surement mieux mais c'est un choix qu'on ne pourra guère te reprocher.
JSON ?
http://www.json.org/
Il y a une librairie pour le C (je l'utilise), ainsi que pour d'autres langages.
On Tue, 28 Nov 2006 13:05:53 -0800, noone@nowhere.undef wrote:
C'est bien la première fois que je vante XML, mais tu trouveras dans la
plupart des langages des librairies pour le parser. Il y a surement mieux
mais c'est un choix qu'on ne pourra guère te reprocher.
JSON ?
http://www.json.org/
Il y a une librairie pour le C (je l'utilise), ainsi que pour d'autres
langages.
On Tue, 28 Nov 2006 13:05:53 -0800, wrote: C'est bien la première fois que je vante XML, mais tu trouveras dans la plupart des langages des librairies pour le parser. Il y a surement mieux mais c'est un choix qu'on ne pourra guère te reprocher.
JSON ?
http://www.json.org/
Il y a une librairie pour le C (je l'utilise), ainsi que pour d'autres langages.
Pierre Maurette
Bonjour,
je souhaite envoyer des données plus ou moins complexes par une liaison série (via un microcontrôleur (émetteur) et un PC (récepteur))
ces données pourraient être dans un tableau (à deux dimensions) ou dans une structure contenant des listes (tableau à 1 dimension)
je ne sais pas trop comment procéder.
En C++ j'aurais tendance à utiliser la bibliothèque Boost http://www.boost.org/libs/serialization/doc/index.html
En Java ou C# la sérialisation XML.
Comment fairiez-vous ?
Je n'ai que peu de renseignements, mais je vois deux types d'approche:
1 - On admet que l'émetteur est pauvre en ressources et que son implémentation (format des données en particulier) est déterminée, et que le récepteur peut être n'importe quelle machine. A ce moment-là, vous documentez un embryon de protocole sur base "octet", soit à partir d'un ensemble de données connu d'avance, soit sur une base simplifiée <header><data><header><data><header><data>... Vous pouvez utiliser une méthode HiByte LowByte pour les entiers, ASCII pour les flottants par exemple. A l'arrivée, vous écrivez portable pour récupérer les données. Il faudrait peut-être un minimum de handshake, au moins une demande de réémission.
2 - On constate qu'on à plus ou moins un ou des PC en supervision sur un automate ou un capteur/actionneur. A ce moment-là, je regarderais l'utilisation d'un protocole de terrain, type ModBus (Over Serial Line) ou Profibus.
Mais je suis peut-être complètement à coté de votre problème.
-- Pierre Maurette
Bonjour,
je souhaite envoyer des données plus ou moins complexes par une
liaison série
(via un microcontrôleur (émetteur) et un PC (récepteur))
ces données pourraient être dans un tableau (à deux dimensions) ou
dans une structure
contenant des listes (tableau à 1 dimension)
je ne sais pas trop comment procéder.
En C++ j'aurais tendance à utiliser la bibliothèque Boost
http://www.boost.org/libs/serialization/doc/index.html
En Java ou C# la sérialisation XML.
Comment fairiez-vous ?
Je n'ai que peu de renseignements, mais je vois deux types d'approche:
1 - On admet que l'émetteur est pauvre en ressources et que son
implémentation (format des données en particulier) est déterminée, et
que le récepteur peut être n'importe quelle machine. A ce moment-là,
vous documentez un embryon de protocole sur base "octet", soit à partir
d'un ensemble de données connu d'avance, soit sur une base simplifiée
<header><data><header><data><header><data>... Vous pouvez utiliser une
méthode HiByte LowByte pour les entiers, ASCII pour les flottants par
exemple.
A l'arrivée, vous écrivez portable pour récupérer les données. Il
faudrait peut-être un minimum de handshake, au moins une demande de
réémission.
2 - On constate qu'on à plus ou moins un ou des PC en supervision sur
un automate ou un capteur/actionneur. A ce moment-là, je regarderais
l'utilisation d'un protocole de terrain, type ModBus (Over Serial Line)
ou Profibus.
je souhaite envoyer des données plus ou moins complexes par une liaison série (via un microcontrôleur (émetteur) et un PC (récepteur))
ces données pourraient être dans un tableau (à deux dimensions) ou dans une structure contenant des listes (tableau à 1 dimension)
je ne sais pas trop comment procéder.
En C++ j'aurais tendance à utiliser la bibliothèque Boost http://www.boost.org/libs/serialization/doc/index.html
En Java ou C# la sérialisation XML.
Comment fairiez-vous ?
Je n'ai que peu de renseignements, mais je vois deux types d'approche:
1 - On admet que l'émetteur est pauvre en ressources et que son implémentation (format des données en particulier) est déterminée, et que le récepteur peut être n'importe quelle machine. A ce moment-là, vous documentez un embryon de protocole sur base "octet", soit à partir d'un ensemble de données connu d'avance, soit sur une base simplifiée <header><data><header><data><header><data>... Vous pouvez utiliser une méthode HiByte LowByte pour les entiers, ASCII pour les flottants par exemple. A l'arrivée, vous écrivez portable pour récupérer les données. Il faudrait peut-être un minimum de handshake, au moins une demande de réémission.
2 - On constate qu'on à plus ou moins un ou des PC en supervision sur un automate ou un capteur/actionneur. A ce moment-là, je regarderais l'utilisation d'un protocole de terrain, type ModBus (Over Serial Line) ou Profibus.
Mais je suis peut-être complètement à coté de votre problème.
-- Pierre Maurette
noone
A ce moment-là, je regarderais l'utilisation d'un protocole de terrain, type ModBus (Over Serial Line) ou Profibus.
je pense que le problème c'est que je n'ai pas d'OS temps réel qui tourne sur le microcontrôleur or pour utiliser un protocole de terrain c'est probablement nécessaire (je dis probablement car je n'ai jamais mis en oeuvre ce genre de "bidule")
A ce moment-là, je regarderais
l'utilisation d'un protocole de terrain, type ModBus (Over Serial Line)
ou Profibus.
je pense que le problème c'est que je n'ai pas d'OS temps réel qui
tourne sur le microcontrôleur
or pour utiliser un protocole de terrain c'est probablement nécessaire
(je dis probablement car je n'ai jamais mis en oeuvre ce genre de
"bidule")
A ce moment-là, je regarderais l'utilisation d'un protocole de terrain, type ModBus (Over Serial Line) ou Profibus.
je pense que le problème c'est que je n'ai pas d'OS temps réel qui tourne sur le microcontrôleur or pour utiliser un protocole de terrain c'est probablement nécessaire (je dis probablement car je n'ai jamais mis en oeuvre ce genre de "bidule")