cs_megamario
Messages postés146Date d'inscriptionlundi 15 juin 2009StatutMembreDernière intervention14 février 2013
-
12 juil. 2011 à 18:59
NHenry
Messages postés15048Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 mars 2023
-
12 juil. 2011 à 21:46
Bonjour,
J'ai un souci à mon boulot, nous développons encore en VB6 sous XP et nous utilisons des dll et ocx qui date depuis fort longtemps, à l’époque de Win 98 voir même Win95, mais nos clients commence à avoir du Win7. Et malheureusement nos fichiers ne fonctionne plus ou mal sous Win7.
Notamment une dll et un exe crée il y a longtemps qui nous sert à gérer les connexions sur port COM.
J'ai réussi à le faire fonctionné la semaine dernière et à faire une installation à l'arrache sur le PC du client (un petit ePC avec Win7Starter),Ce PC va lui servir de visu pour afficher les paramètres de notre supervision.
Malheureusement cette semaine impossible à le refaire marcher avec mon PC perso (au boulot on à même pas un poste en Win7).
Il faudrait que l'on refasse toutes nos dll, ocx et exe pour les passer en .net. Mais cela ne se fait pas en 1 jour vu le nombres de fichiers.
Dans un 1er temps je recherche un logiciel ou des codes source vb.net ou C#, pour faire une passerelle Ethernet vers PortCOM. la fonction ethernet fonctionnant encore bien. Je l'installerais en local, sur le système.
L'entreprise étant en pleine restructuration, je n'est pas beaucoup de temps actuellement car je suis formé par les personnes qui malheureusement ne sont pas gardées.
Une petite aide serait donc la bienvenue en ces temps difficile, afin que je puisse au moins débloquer la situation de façon temporaire.
NHenry
Messages postés15048Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 mars 2023156 12 juil. 2011 à 19:29
Bonjour,
A mon travail, on utilises aussi des postes Win7 avec VB6, mais sans connexion à un port COM.
Coté serveur, sur un Win2008, Les ports COMs fonctionnent parfaitement.
As-tu essayé de voir si avec le composant MsCommControl ça passe ?
Sinon pour faire une passerelle, il faut définir un protocole :
- De quoi as-tu besoin (juste les données ou en plus, les broches d'états supplémentaires, RTS, DTS, ...) ?
- Comment initialiser l'échange (Numéro de port, Vitesse, caractéristiques (Parité, stop, ...) ) ?
Car faire une passerelle est très simple, j'en avait fait une "à l'arrache", qui écoutait sur un port TCP puis qui envoyait le tout sur un port COM, mais la seule config (numéro du port) était coté serveur.
Pour la partie TCP : System.Net.Sockets.TcpListener et TcpClient
Pour la partie port COM : System.IO.Ports.SerialPort
cs_megamario
Messages postés146Date d'inscriptionlundi 15 juin 2009StatutMembreDernière intervention14 février 2013 12 juil. 2011 à 20:26
Bonjour,
Effectivement j'ai besoin de transmettre sur le port COM des données sous forme de texte
Genre
LOGIN/D/DUDULE
A la suite de cette ligne il y a une séparation(j'ai un trou de mémoire sur le type exacte) puis il y a un checksum et enfin un VBCRLF qui clôture la ligne.
Pour les paramètres il me faut effectivement les options classique du port COM: Vitesse,bits d’arrêt, bits de données, parité, etc.. et pourquoi pas les RDS DTS pour plus de compatibilité.
Pour les composant qui attaque le port com, je ne sais même pas quelle outils ils ont utilisé, puisque tout passe par notre dll et exe ancien, je sais qu'il était développer en C++, mais j'en sais pas plus pour le moment.
Je suis dans le service depuis 1 ans à la suite de ma formation de 2 ans pour le BTS IRIS. j'ai déjà imposé .net pour des projets parallèle, n’utilisant pas les fonctions ancestrale.
Par contre je sais que ma collègues qui à fait un logiciel autonome pour ce même client juste pour afficher 3 ou 4 paramètres, a utilisé encore VB6 et donc les fonctions classic de celui_ci donc surement MsCommControl. Et cela marche.
Pour mon cas ce qui me gène le plus c'est que lorsque j'ai installé le logiciel sur le petit ePC il a fallu que je compile je logiciel a partir de Win7, ensuite j'ai crée l'install avec installshield et dans les dépendance il m'a trouvé quelque chose de Win95 qu'il à inséré, ce qu'il ne fait pas depuis WinXP. Et lorsque je voulais lancé mon logiciel après l'avoir installé, celui-ci m'a annoncé plusieurs dll manquante de notre conception. Une fois placé dans System32 plus de souci, mais la rien à faire. je voudrais refaire donc un package propre avec les fameuses dll manquante mais il ne veux rien savoir, il s’installe bien il s'ouvre bien mais impossible de se connecter au PortCOM, pourtant dans les services je vois bien mon exe qui gère le port COM se lancer, mais rien a faire. Dans le programme il gère une exception immédiate comme s'il n'y avait pas de port COM.
Je pense vraiment à un droit d'utilisation ou d’écriture quelque part, vu que nos exe et dll arrivaient malgré tout à fonctionné avec le ePC
Déjà si je veux autorisé l'installation de nos ocx dans VB6, il faut que je démarre VB6 en mode administrateur, si non il m'annonce des erreurs d'activeX et élimine toute mes ocx
Vous n’avez pas trouvé la réponse que vous recherchez ?
NHenry
Messages postés15048Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 mars 2023156 12 juil. 2011 à 21:46
Bonjour,
Bien que je comprenne que maintenir l'existant est une priorité, mais VB6 est déjà dépassé depuis quelquesss années.
Sinon, en cas extrême, il est quand même possible de faire un OCX.NET (Composant COM/OLE), je n'ai pas beaucoup testé, mais ça peut être une solution le temps de migrer l'ensemble du projet.