Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Port Série sous Dev C++

6 réponses
Avatar
tibo
Salut =E0 tous

j'essai depuis un certain temps de faire un programme sous Dev C++
pour remplacer les versions que je fesait sous Borland.

le but de ce programme est de r=E9cuperer une trame ASCII sur le port
S=E9rie d'un ordinateur.

j'ai essayer plusieurs codes sources dispo sur le net et je n'en ai
pas trouver qui fonctionner

est-ce que quelqu'un a d=E9j=E0 essayer de faire un programme de ce genre
sous Dev C++?

auriez vous quelques exemples de codes valides =E0 essayer?
ou encore des pistes =E0 suivre? (bioscom? stdaux? conio?)


merci pour votre aide

A+
tibo

6 réponses

Avatar
Fabien LE LEZ
On 25 May 2007 12:54:18 -0700, tibo :

j'essai depuis un certain temps de faire un programme sous Dev C++


Windows, donc.

le but de ce programme est de récuperer une trame ASCII sur le port
Série d'un ordinateur.
[...]
ou encore des pistes à suivre? (bioscom? stdaux? conio?)


[HS] T'es mal barré, ça c'est du code pour MS-DOS.

Cherche CreateFile dans msdn.microsoft.com, puis va sur le bon groupe,
fr.comp.os.ms-windows.programmation, si tu as encore des soucis.

Avatar
tibo
j'ai reposé ma question sur fr.comp.os.ms-windows.programmation
je pensé être dans le bon groupe
merci quand même


On 26 mai, 11:09, Fabien LE LEZ wrote:
On 25 May 2007 12:54:18 -0700, tibo :

j'essai depuis un certain temps de faire un programme sous Dev C++


Windows, donc.

le but de ce programme est de récuperer une trame ASCII sur le port
Série d'un ordinateur.
[...]
ou encore des pistes à suivre? (bioscom? stdaux? conio?)


[HS] T'es mal barré, ça c'est du code pour MS-DOS.

Cherche CreateFile dans msdn.microsoft.com, puis va sur le bon groupe,
fr.comp.os.ms-windows.programmation, si tu as encore des soucis.



Avatar
alex
salut,

j'essai depuis un certain temps de faire un programme sous Dev C++
pour remplacer les versions que je fesait sous Borland.


Sous quel borland ? Si c'est C++ Builder tu dois pouvoir trouver des
composants VCL qui encapsulent proprement les API Win32.

le but de ce programme est de récuperer une trame ASCII sur le port
Série d'un ordinateur.

est-ce que quelqu'un a déjà essayer de faire un programme de ce genre
sous Dev C++?
pas spécialement sous DevC++ mais c'est assez classique. En fait, ça dépend

de ton système d'exploitation. Soit tu es sous DOS (peu probable vu
DevC++...) ou sous Windows 9x (ça c'est possible) et tu peux utiliser des
fonctions "bas niveau" (en assembleur par ex) directement sur le port (genre
faire un IN sur le port 0x378). Pas portable, pas sécurisé, mais très très
simple. Si tu es sous Windows NT, 2k, XP ou Vista, alors il est impossible
de discuter avec le port et il faut passer par les API du système. Regardes
la doc SDK Win32 à CreateFile..

auriez vous quelques exemples de codes valides à essayer?
oui mais suivant ton OS...


ou encore des pistes à suivre? (bioscom? stdaux? conio?)
pourquoi pas suivant ton OS... Mais à priori tu n'utililses pas DOS ;-)


Avatar
James Kanze
On May 31, 8:57 pm, "alex" wrote:
j'essai depuis un certain temps de faire un programme sous Dev C++
pour remplacer les versions que je fesait sous Borland.


Sous quel borland ? Si c'est C++ Builder tu dois pouvoir trouver des
composants VCL qui encapsulent proprement les API Win32.

le but de ce programme est de récuperer une trame ASCII sur
le port Série d'un ordinateur. est-ce que quelqu'un a déjà
essayer de faire un programme de ce genre sous Dev C++?


pas spécialement sous DevC++ mais c'est assez classique. En fait, ça dépend
de ton système d'exploitation. Soit tu es sous DOS (peu probable vu
DevC++...) ou sous Windows 9x (ça c'est possible) et tu peux utiliser d es
fonctions "bas niveau" (en assembleur par ex) directement sur le port (ge nre
faire un IN sur le port 0x378). Pas portable, pas sécurisé, mais tr ès très
simple. Si tu es sous Windows NT, 2k, XP ou Vista, alors il est impossible
de discuter avec le port et il faut passer par les API du système. Rega rdes
la doc SDK Win32 à CreateFile..


Avec tout système moderne, pour s'adresser directement à la
porte série, et en exploiter toutes ses possibilités, il va
falloir écrire un pilote, ce qui dépend énormement du système
(et qui n'est pas à la portée de quelqu'un sans une certaine
expérience). À l'autre extrème, c'est une périphérique comme une
autre, avec un nom ("/dev/quelquechose" sous Unix), qu'on ouvre
et qu'on ferme. Typiquement, il existe aussi des possibilités de
le « programmer » un peu aussi au moyen des requêtes système
spéciales, genre ioctl sous Unix.

Il faut qu'il trouve ces requêtes pour sa plateforme (qui est
probablement Windows, et donc, la requête n'est pas ioctl), et
voir si les possibilités lui en suffissent. Et ça, il faudrait
qu'il le cherche dans un groupe propre à sa plateforme.

auriez vous quelques exemples de codes valides à essayer?


oui mais suivant ton OS...

ou encore des pistes à suivre? (bioscom? stdaux? conio?)


pourquoi pas suivant ton OS... Mais à priori tu n'utililses
pas DOS ;-)


Il faut l'espérer. Pour lui.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
tibo
Salut

On 31 mai, 20:57, "alex" wrote:
salut,

j'essai depuis un certain temps de faire un programme sous Dev C++
pour remplacer les versions que je fesait sous Borland.


Sous quel borland ? Si c'est C++ Builder tu dois pouvoir trouver des
composants VCL qui encapsulent proprement les API Win32.


j'était sous Borland C++ Builder 6 et je ne passais pas par un API
mais par un composant Borland, le TPortCom
très peut souple à mon goût et un peut contraignant :(


le but de ce programme est de récuperer une trame ASCII sur le port
Série d'un ordinateur.
est-ce que quelqu'un a déjà essayer de faire un programme de ce genre
sous Dev C++?


pas spécialement sous DevC++ mais c'est assez classique. En fait, ça dépend
de ton système d'exploitation. Soit tu es sous DOS (peu probable vu
DevC++...) ou sous Windows 9x (ça c'est possible) et tu peux utiliser d es
fonctions "bas niveau" (en assembleur par ex) directement sur le port (ge nre
faire un IN sur le port 0x378). Pas portable, pas sécurisé, mais tr ès très
simple. Si tu es sous Windows NT, 2k, XP ou Vista, alors il est impossible
de discuter avec le port et il faut passer par les API du système. Rega rdes
la doc SDK Win32 à CreateFile..


Le but serai de le faire fonctionner sur un OS NT/2K/XP
est-il possible d'assurer la prise en charge sous Win 9X de la même
manière?

merci pour les references, je regarde...



auriez vous quelques exemples de codes valides à essayer?


oui mais suivant ton OS...


parton du principe que le but est de le faire fonctionner sur du XP :)


ou encore des pistes à suivre? (bioscom? stdaux? conio?)


pourquoi pas suivant ton OS... Mais à priori tu n'utililses pas DOS ;-)


en fait je n'ai pas tester ces système, ce n'était que des pistes
trouvé dans un cours qui date en effet de 1992 :)

ok j'oubli :D

merci pour votre aide
je continu mes recherche
si quelqu'un à un exemple de code, je suis preneur :)
merci

tibo


Avatar
alex
bonsoir,

si tu ne veux pas utiliser de composant VCL pour ça, sous Win32 tu as l'API
CreateFile qui permet d'ouvrir un fichier qui, bien nommé, peut être ton
port série (et ça marche sous tous Windows, depuis 95 jusqu'à XP, et je
suppose idem sous vista).

Ouvrir le port série : CreateFile, avec .COM1 comme nom de fichier (à
vérifier néanmoins, mais la doc du SDK Win32 te le dira), qui te renvoie un
HANDLE sur ton pseudo-fichier.
Ensuite lire avec ReadFile, écrire avec WriteFile.
On referme le tout bien sur, comme un fichier.

Par contre ça n'utilise pas les interruptions, il faut lire en "polling"

hope it helps :-)