programme en vba qui envoye des infos au port serie

programme en vba qui envoye des infos au port serie - VB/VBA/VBS - Programmation

Marsh Posté le 24-03-2005 à 17:17:39    

:??:  
 
bonjour je cherche un programme en visual basic qui permet d envoyer des infos, soit d un fichier txt ou soit d une feuille excel si c est possible,sur un port serie.
est ce possible
je vous remercie :??:

Reply

Marsh Posté le 24-03-2005 à 17:17:39   

Reply

Marsh Posté le 24-03-2005 à 19:27:07    

Bonne nouvelle pour toi : c'est possible.

Reply

Marsh Posté le 25-03-2005 à 01:57:38    

Google est ton ami.
Voilà ce que j'ai trouvé: http://www.vbfrance.com/code.aspx?ID=23549.

Reply

Marsh Posté le 25-03-2005 à 09:54:51    

nantuko a écrit :

Google est ton ami.
Voilà ce que j'ai trouvé: http://www.vbfrance.com/code.aspx?ID=23549.


je t remercie mais il ne m indique que des programmes pour récuperer des données mais moi je veux envoyer des infos sur le port serie
merci

Reply

Marsh Posté le 25-03-2005 à 11:44:54    

Tu veux faire transiter sur quoi ?
quelle interface derrière le port série ?
 
http://grafikm.developpez.com/portcomm/


Message édité par knakes le 25-03-2005 à 11:52:41
Reply

Marsh Posté le 01-04-2005 à 08:36:50    

Bonjour
 
en faite je veux envoyer des infos d 'excel a un automate.la liaison entre c est deux machine est une liaison série rs 485. Donc j ai un programme java qui le fais mais vu que je travaille deja sur excel et vba ca serai mieux de tout faire en vba d excel.
Est ce possible et est ce que vba d excel va supporter ce programme.
je te remercie
tchao
bon week end

Reply

Marsh Posté le 05-04-2005 à 10:33:38    

Ben si déjà tu donnais le listing de ton prog java, on pourrait te le traduire...


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 05-04-2005 à 11:54:34    

AlainTech a écrit :

Ben si déjà tu donnais le listing de ton prog java, on pourrait te le traduire...


ok voila le programme en java
import javax.comm.*;
import com.sun.comm.Win32Driver;
import java.io.*;
import java.util.Enumeration;
 
public class f {
// while (!lu.equals("q" )) {
   private BufferedReader bufRead; //flux de lecture du port
   private OutputStream outStream; //flux d'écriture du port
   private CommPortIdentifier portId; //identifiant du port
   private SerialPort sPort; //le port série
   /**
    * Constructeur
    */
   public f(String port) {
   //initialisation du driver
   Win32Driver w32Driver = new Win32Driver();
   w32Driver.initialize();
   //récupération de l'identifiant du port
   try
    {
    portId = CommPortIdentifier.getPortIdentifier(port);
    System.out.println ("Le port de communication " + portId.getName() + " existe bien " );
   
   } catch (NoSuchPortException e)
   {
    System.out.println ("Le port " + port + " specifie au demarrage n'existe pas" );
   }
   //ouverture du port
   try {
    sPort = (SerialPort) portId.open("UtilisationFlux", 30000);
   } catch (PortInUseException e) {
   }
   //règle les paramètres de la connexion
   try {
    sPort.setSerialPortParams(
     9600,
     SerialPort.DATABITS_8,
     SerialPort.STOPBITS_1,
     SerialPort.PARITY_NONE);
   } catch (UnsupportedCommOperationException e) {
  }
   //récupération du flux de lecture et écriture du port
   try {
    outStream = sPort.getOutputStream();
    bufRead =
     new BufferedReader(
      new InputStreamReader(sPort.getInputStream()));
   } catch (IOException e) {
   }
  }
  /**  
   * Méthode de communication.
   */
  public String communiqueChar(char envoie) {
   String poids = null;
   try {
    //demande de poids
    outStream.write((int) envoie);
    //lecture du poids  
    poids = bufRead.readLine().trim();
   } catch (IOException e) {
   }
   return poids;
   }
 
  public String communiqueString(String strEnvoie) {
   
   String poids = null;
   char envoie = '_';
   try {
     
     //Faire une boucle pour lire chaque caractere du string strEnvoie
     //dans le char envoie
    for (int i=0; i<strEnvoie.length(); i++)
    {  
       envoie = strEnvoie.charAt(i);
     //ecriture du caractere
     outStream.write((int) envoie);
    }
 
    //lecture de la reponse
    poids = bufRead.readLine().trim();
 
   } catch (IOException e) {
   }
   return poids;
  }
 
 
  /**
   * Méthode de fermeture des flux et port.
   */
  public void close(){
   try {
    bufRead.close();
    outStream.close();
   } catch (IOException e) {
   }
   sPort.close();
  }
  /**
   * Méthode principale de l'exemple.
   */
  public static void main(String[] args)throws IOException  
  {
 
   
   if (args.length == 0)
   {
    System.out.println ("Vous devez specifier un port de communication" );
    System.out.println ("Voici la liste des ports existants sur le PC" );
     
    // Initialisation du driver
    Win32Driver w32Driver = new Win32Driver();
    w32Driver.initialize();
    // Recuperation de l'énumeration des ports
    Enumeration portList = CommPortIdentifier.getPortIdentifiers();
    // Affichage des noms des ports
    CommPortIdentifier portId;
    while (portList.hasMoreElements())
    {
     portId = (CommPortIdentifier)portList.nextElement();
     System.out.println (portId.getName());
    }  
 
    // sortie du programme
    return ;
   }  
 
   //Récupération du port en argument
   String port = args[0];
   //Construction de l'interface à la balance
   UtilisationFlux utilFlux = new UtilisationFlux(port);
 
   //"interface utilisateur"
   System.out.println("taper q pour quitter, ou ENTER pour le poids" );
   //construction flux lecture
   
   //lecture sur le flux entrée.
   String ligne;
   try {  
    BufferedReader clavier =
      new BufferedReader(new FileReader("essai" ));
    ligne = clavier.readLine();
 
    while (!ligne.equals("q" ))
                         {
     clavier = new BufferedReader(new FileReader("essai" ));
     System.out.println ("La ligne saisie est : " + ligne);
     System.out.println ("On envoie la chaine sur le port serie :" + ligne);
     String reponse = utilFlux.communiqueString(ligne);
     System.out.println("Reponse recue : " + reponse);
     
   BufferedReader clavie =
    new BufferedReader(new FileReader("essai" ));    
   ligne = clavie.readLine();
    }  
   clavier.close();
   } catch (IOException e) {
   }
   utilFlux.close();    
  }
// }
}
 
je te remercie d avance
Mais apres quelque recherche je me dis qu il existe un moyen avec une commande msncomm, non? a quoi ca sert?
merci encore a+

Reply

Marsh Posté le 24-01-2006 à 15:18:22    

Je fais un grand UP:
 
Est ce possible de faire la même chose sans la commande MSComm ???
 
Merci d'avance c'est assez important !

Reply

Marsh Posté le 12-12-2008 à 16:18:45    

Moi pour communiquer avec ma balance sous windows j'ai utilisé le logiciel BillRedirect super facile à utiliser et la documentation est disponible en francais ... J'ai eu un petit problème j'ai communiqué avec le support technique qui m'a répondu très rapidement ... pour plus d'informations visite le site: www.billproduction.com  
 
http://www.billproduction.com/bill [...] ex_fr.html
 
Chow et bonne chance avec votre balance !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed