IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Émuler un port COM virtuel


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    facturation
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : facturation
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut Émuler un port COM virtuel
    Bonjour, je suis novice en matière de dev étant plutôt accès réseau
    Je cherche à émuler un port com distant (port virtuel puis que en réalité appareil série connecté en usb mais reconnu en port com dans le gestionnaire de périphérique).

    sur le pc distant j'ai juste l'appareil connecté au port com et sur le mien j'ai une appli comptable (qui travaille uniquement sur port com).

    Le but étant que mon appli compta scan les ports com et détecte l'appareil comme si il était connecté sur ma machine en local

    J'ai bien sur lu divers post (notamment émuler un port com virtuel) et un autre sur les ports série mais je m'y perd et je n'ai pas réussi mes test à partir de Com0com, Hub4com...).

    Ces softs sont ils prêt à l'emploi si je puis dire ou faut il les remanier a notre sauce?
    J'ai trouvé un soft payant qui fait ce que je recherche a titre d'information https://www.aggsoft.com/fr/tcp-com/ mais cela va vite me couter cher si j'ai plusieurs pc distant

    voilà, donc dois-je bidouiller les softs cité plus haut ? est ce possible ? (techniquement et légalement)
    ou dois demander à le faire développer complètement

    merci pour votre aide

  2. #2
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Laisse tomber en Delphi, j'ai cherché également à faire quelque chose de similaire (port MIDI virtuel). Cela nécessite la création d'un pilote système Windows et cela n'est possible que sous Visual Studio.
    Une SDK existe (la WDK, Windows Driver Kit, avec plein d'exemples, certes, mais ça reste vraiment compliqué.)
    Si tu es motivé, il y a un ensemble de tutos sur codeproject.com pour apprendre à développer des drivers (en C++), ils ne sont pas du tout faciles à trouver !
    http://www.codeproject.com/search.as...x=0&y=0&sbo=kw

    Delphi n'est pas capable de créer des drivers. Cependant des furieux des pays de l'est à réussi à créer un Delphi Driver Development Kit, si tu aimes lier, construire et compiler à la main, alors c'est peut être fait pour toi :
    http://www.delphibasics.info/home/de...developmentkit (lien de téléchargement tout à droite de la page, en bas).

    Le plus simple c'est que tu te rabattes sur le logiciel que tu as mis en lien, vraiment.


    Par contre tu dis :
    "port virtuel puis que en réalité appareil série connecté en usb mais reconnu en port com dans le gestionnaire de périphérique"
    Je ne sais pas de quel genre d'appareil tu parles (un lecteur de codes barre ?), mais je serais toi, je vérifierais de quel façon Windows considère l'appareil si tu le branche sur un PC, mais sans installer les pilotes. Il est fort à parier qu'il soit reconnu comme interface HID, scanner générique ou les deux.
    une douchette sera reconnue comme étant un clavier, la plupart du temps, quand c'est une douchette USB premier prix et pas une douchette de compèt' !


    A ce moment là, si scanner générique, ça ne devrait pas être difficile à s'interfacer via du code delphi (il y a une api ou un ocx pour ça dans windows (google est ton ami !), coté HID device générique tu peux t'en sortir avec Delphi aussi en utilisant l'unité JvHidControllerClass de la JVCL. J'ai pu utiliser cette unité dans un projet il y a quelques années dont tu peux disséquer le code pour voir comment l'utiliser : https://sourceforge.net/projects/nos...2.0.0%20final/


    J'peux pas faire mieux pour toi

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 586
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    en fait je ne comprend pas les termes émuler et virtuel !

    Le but étant que mon appli compta scan les ports com et détecte l'appareil comme si il était connecté sur ma machine en local
    ça par contre, je comprend, sauf le "comme si" soit il est connecté soit non . S'il est connecté alors l'appli peut récupérer des données s'il n'est pas connecté cela doit être là qu'interviennent les mots émuler et virtuel ?

    bref, cela demande une explication de texte plus précise et peut-être même un changement de titre pour avoir plus de réponse

  4. #4
    Membre à l'essai
    Homme Profil pro
    facturation
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : facturation
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut
    Bonjour,

    merci pour vos réponses à tous

    je dis "Le but étant que mon appli compta scanne les ports com et détecte l'appareil comme si il était connecté sur ma machine en local"

    parce que l'appli compta est sur le PC A et le lecteur contenant les données est sur le port com du PC B distant donc par internet.

    Voici le lecteur en question http://www.distrimed.com/product_inf...oducts_id=6507

    je dis aussi émuler et virtuel car le lecteur de carte qui est donc sur le pc distant B est connecté en USB avec un câble "spécial" qui fait qu'il est reconnu en port com et non USB

    Émuler une paire de port com permet de faire la liaison entre les ports com du pc A et B (a travers internet).
    j’espère vous avoir éclairci mais je vais sans doute devoir me tourner vers le soft tcpcombridge

    J'ai aussi testé du pc B (lecteur) vers le pc A (appli) en lançant une connexion RDP (sans serveur, juste bureau à distance) et cela fonctionne, le port com du pc B remonte bien sur le pc A sauf que la session du PC A du coup se ferme donc plus d’accès visuel à l'appli comptable. Cela fonctionne car je me suis connecté avec teamviewer avec un 3eme pc sur le PC A (appli) et l'appli détecte bien le port com du pc distant B.

    Je pense qu'avec un serveur Windows je peux aussi faire ce que je voudrais mais c'est un gros trop gros investissement matériel

    merci de votre aide

  5. #5
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Pour commencer, pour utiliser les ports com sous Delphi, tu as cet excellent tutoriel écrit par Nono40 :
    http://nono40.developpez.com/tutorie.../2005/comport/

    Sache que ce n'est pas ce câble "spécial" qui fait qu'il est reconnu en port com et non USB, c'est le pilote que tu installes sur le PC. USB reste de l'USB (sauf si tu utilises un pilote qui crée justement un port virtuel et fait un Bridge entre le port USB physique et le port com virtuel). D'où l'idée de brancher l'appareil en USB sur un PC, sans installer le pilote fourni avec.
    Quoiqu'il en soit, il faudrait que tu ouvres le gestionnaire de périphérique et que tu regardes comment ton appareil est reconnu (clic droit dessus, propriétés), récupère un max d'info : VID, PID (USB Vendor ID et Product ID), .sys et .dll utilisées par le pilote, resources (ports utilisés).

    Après ce serait intéressant de savoir si il existe une API pour cette gamme d'appareil (j'ai pas l'impression), si il y en a une, ça peut toujours servir.
    Ha si, il y a ceci :
    http://archive.wikiwix.com/cache/?ur...Falibabaapi%2F
    Que j'ai trouvé via cela :
    https://fr.wikipedia.org/wiki/SESAM-Vitale
    Et cela :
    http://www.myeasyoptic.com/fichiers/...calService.pdf

    Enfin, il y a un "truc" ui me chiffonne pour l'utilisation de ports virtuels : l'application doit impérativement pouvoir être configuré pour utiliser un port "entrant" et un port "sortant". En effet, un vrai port com (ou USB, MIDI, série, etc...) est bi-directionnel, alors qu'un port virtuel est unidirectionnel. Du coup, si vraiment les pilotes de ton appareil emulent un port com pour que l'application livrée (qui doit dater de l'age de pierre) puisse utiliser ton appareil, alors deux ports com virtuels sont créés (et pas qu'un), un pour envoyer les données vers l'USB de l'appareil, un pour les recevoir. L'autre truc a savoir aussi, c'est que si tu débrancehes ton appareil et que tu le rebranches, ton numéro de port com va changer, ce ne sera jamais le même :
    voir le commentaire de cet article :
    http://www.amula.asso.fr/site/articl...id_article=300

    Pas simple ton affaire...

  6. #6
    Membre à l'essai
    Homme Profil pro
    facturation
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : facturation
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut
    Bonjour LadyWasky,

    merci pour les liens, je les ai déjà lu, à part celui de nono40 que je vais prendre le temps de lire et les API Alibaba.

    Myeasyoptic ne correspond pas a ce que je veux faire.

    désolé pour le "câble spécial" ce qui m' a induit en erreur c'est que lorsque j'ai eu le lecteur pour tester la première fois il n'y avait pas le câble. Ne connaissant pas l'appareil, j'ai connecté un câble USB standard aucune réaction de Windows ni du gestionnaire de périphérique...étrange (ça doit être le câble) !!!

    J'ai donc récupéré le bon câble et le gestionnaire de périphérique à réagi en plaçant un appareil inconnu sur un port Com. Ensuite j'installe le pilote et Xiring apparait bien sur ce même port COM. Cela dit le câble est bien en USB des deux coté (mini pour le lecteur et classique coté ordi).

    Oui j'ai bien les API que j'ai eu au support de l'appli compta

    Tu as tout à fait raison les port COM sont bien bi-directionnel, je me suis embrouillé avec la solution logicielle que j'ai testé (client/Maitre) qui elle, installe des ports COM virtuel pour fonctionner (donc par paire sur les deux ordi) pour les rendre bi-directionnel et accessible a distance a travers un serveur. Il faut effectivement "charger" et "décharger" l'appareil lors des connexions de l'appli vers le port COM distant.

    Ce n'est pas le pilote Xiring qui crée ces ports virtuel, en me relisant effectivement c'est confus. L'appli n'est pas faites à l'origine pour travailler à distance mais sur port COM local

    Non le port COM ne change jamais, tu peux même connecter plusieurs lecteurs différent ils seront toujours reconnu sur le même port ce qui n'est pas le cas de l'USB

    Je vais regarder en détails les propriétés comme tu me le dit dans le gestionnaire de périph

    merci de ton aide, cela fait du bien d'échanger sur le sujet

    cordialement

  7. #7
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Citation Envoyé par tophe590 Voir le message
    Non le port COM ne change jamais, tu peux même connecter plusieurs lecteurs différent ils seront toujours reconnu sur le même port ce qui n'est pas le cas de l'USB
    Je parlais des ports com virtuels, ça dépend du pilote même (si il est programmé avec les pieds)

    Citation Envoyé par tophe590 Voir le message

    merci de ton aide, cela fait du bien d'échanger sur le sujet

    cordialement
    Au plaisir

Discussions similaires

  1. Émuler un port COM virtuel
    Par DaffyDuck dans le forum API, COM et SDKs
    Réponses: 18
    Dernier message: 08/11/2018, 18h21
  2. Accès port COM virtuel
    Par arbtec dans le forum C#
    Réponses: 5
    Dernier message: 29/09/2008, 14h41
  3. [W98] changer le numero port COM virtuel d'un cable usb to RS232
    Par Arnard dans le forum Windows 2000/Me/98/95
    Réponses: 2
    Dernier message: 10/06/2008, 14h22
  4. creation d'une paire de port com virtuel
    Par KnightCoder dans le forum Windows
    Réponses: 1
    Dernier message: 17/09/2007, 12h00
  5. [WD11] Création Port COM Virtuel
    Par C-Faust dans le forum WinDev
    Réponses: 2
    Dernier message: 27/07/2007, 08h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo