Porblème microcontroleur TINI

Porblème microcontroleur TINI - Java - Programmation

Marsh Posté le 13-04-2006 à 09:17:23    

Bonjour,
 
Je travaille actuellement sur un micro controleur TINI model 390, de Dallas Semiconductor , c'est une carte Java avec une JVM intégrée. Cette carte possède en autre un port RS232, appelé serial0 et un port Ethernet.
--  
J'ai un problème de communication avec ce port. Je branche dessus une tourelle. Je me connecte à ma carte TINI via une session telnet, à partir de mon PC, j'import le programme sur la carte et l'exécute. J'ouvre le ports serial0 de ma tini mais je n'arrive pas en rentrer en communication avec la tourelle, je reçoit aucun signal de sa part !!
--  
Voici le code que j'utilise :  

Code :
  1. import javax.comm.*;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStreamWriter;
  8. import java.io.PrintWriter;
  9. import java.util.*;
  10. import javax.comm.SerialPort;
  11. /** List all the ports available on the local machine. **/
  12. public class serial0port {
  13.  
  14.    static SerialPort serialPort;
  15.    CommPortIdentifier port_id; 
  16.    InputStream in;
  17.    //DataInputStream in;
  18.    PrintWriter out;
  19.    String chaine;
  20.    boolean busy=false;
  21.  
  22.    //constructeur
  23.    public serial0port(String com) throws NoSuchPortException{     
  24. //      ouverture du ports COM1   
  25.       System.out.println("listage des ports serie disponibles ! :" );
  26.       RecherchePort();
  27.      
  28.      
  29.          try {
  30.             port_id=CommPortIdentifier.getPortIdentifier(com);
  31.              //CommPort port = port_id.open ("PortListOpen",20);
  32.             serialPort = (SerialPort)port_id.open ("Envoi",20000);
  33.              System.out.println ("\r     Port "+serialPort+" ouvert avec succes!" );
  34.              //serialPort.close ();
  35.            }
  36.            catch  (PortInUseException pe){
  37.                System.out.println ("  Open failed" );
  38.                String owner_name = port_id.getCurrentOwner ();
  39.                if (owner_name == null)
  40.                    System.out.println ("  Port Owned by unidentified app" );
  41.                else
  42.                    // The owner name not returned correctly unless it is
  43.                    // a Java program.
  44.                    System.out.println (" Occupé par " + owner_name);
  45.                serialPort.close();
  46.            }
  47.          
  48.          //paramètres de la connexion
  49. //         set up the serial port
  50.           //38400
  51.          
  52.            try {
  53.               serialPort.setFlowControlMode (SerialPort.FLOWCONTROL_NONE);
  54.               serialPort.setSerialPortParams (
  55.                     9600, SerialPort.DATABITS_8,
  56.                          SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
  57.            }
  58.            catch (UnsupportedCommOperationException uce) {
  59.              // This error shouldn't happen
  60.            }
  61.          
  62.        
  63.            //déclarations des Streams.
  64.            try {
  65.             in = serialPort.getInputStream();
  66.            
  67.             out = new PrintWriter(
  68.                        new BufferedWriter(
  69.                           new OutputStreamWriter(serialPort.getOutputStream())),true);
  70.          } catch (IOException e) {
  71.             // TODO Auto-generated catch block
  72.             System.out.println("Erreur ouverture des streams" );
  73.             e.printStackTrace();
  74.          }
  75.        
  76.        
  77.        
  78.          String rep="errr";
  79.          long str=20000;
  80.        
  81.            while(true){
  82.          // Utilisation des fluXXx!
  83.          try {
  84.             System.out.println("Un message à transmettre ? : " );
  85.             chaine=serial0port.lireString();
  86.            
  87.             //chaine=chaine+"/r";
  88.            
  89.            
  90.             out.println(chaine);     // envoi d'un message             
  91.             out.flush();
  92.            
  93.             //chaine=chaine+"\r";
  94.             if (chaine.charAt(0)=='X'){
  95.                System.out.println("Quit..." );
  96.                serialPort.close();
  97.                System.exit(0);
  98.             }
  99.             else
  100.             {
  101.                int repa=0;
  102.                while(true){             
  103.                  
  104.                byte ch=(byte)in.read();
  105.                System.out.println("Attente réception...\r" );
  106.                      //rep=in.read();
  107.                      System.out.println("Message reçu ! : "+ch);           
  108.  
  109.             }
  110.              
  111.             }
  112.          } catch (IOException e) {
  113.             // TODO Auto-generated catch block
  114.             e.printStackTrace();
  115.          }
  116.            }
  117.    }
  118.  
  119. //   fait saisir au clavier un caractère
  120.      public static String lireString(){
  121.      
  122.         String ligne_lue=null;
  123.         try
  124.         {
  125.            InputStreamReader lecteur= new InputStreamReader(System.in);
  126.            BufferedReader entree = new BufferedReader(lecteur);
  127.            ligne_lue=entree.readLine();     
  128.         }
  129.         catch(IOException err)
  130.         {
  131.            System.exit(0);
  132.         }
  133.         return ligne_lue;
  134.      
  135.      }
  136.  
  137.  
  138.   public static void main (String [] args) throws NoSuchPortException {
  139.      String port;
  140.      System.out.println("Selection du port (COM1 ou serial0) : " );
  141.      port=serial0port.lireString();
  142.      new serial0port (port);
  143.   } // main
  144.   public void RecherchePort(){
  145.      Enumeration port_list = CommPortIdentifier.getPortIdentifiers ();
  146.      
  147.        while (port_list.hasMoreElements()) {
  148.          CommPortIdentifier port_id =
  149.            (CommPortIdentifier)port_list.nextElement ();
  150.          if (port_id.getPortType () == CommPortIdentifier.PORT_SERIAL) {
  151.              System.out.println ("Serial port: " + port_id.getName());
  152.          }
  153.          else if (port_id.getPortType () ==
  154.                   CommPortIdentifier.PORT_PARALLEL) {
  155.             System.out.println ("Parallel port: " + port_id.getName ());
  156.          }
  157.          else
  158.            System.out.println ("Other port: " + port_id.getName ());
  159.        }
  160.   }
  161. } // class PortList


 
---
 
J'ai fait des tests de communication entre la tourelle et mon PC directement en connectant la tourelle à mon PC, et ce code fonctionne très bien. J'envoie des commandes à la tourelle et je reçoit des données de sa part !
---
Mais lorsque j'essaie en utilisant la carte TINI, je ne reçoit aucune donnée de la tourelle !!
---
 
Avez vous déjà travailler sur de tel micro contrôleur ?? Et celui là en particulier ?
Avez vous des suggestions ou des solutions à me proposer ??
 
Merci beaucoup de votre aide

Reply

Marsh Posté le 13-04-2006 à 09:17:23   

Reply

Sujets relatifs:

Leave a Replay

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