Partage
  • Partager sur Facebook
  • Partager sur Twitter

piloter un fax en java

    5 décembre 2006 à 13:09:45

    Bonjour

    J'ai comme projet de faire un logiciel en java afin d'envoyer des fax.
    Pour cela j'ai telecharger l'aPI Java(tm) Communication API et j'ai trouver quelques exemples ...
    Bien que mon programme se compile et s'execute correctement (en tout cas je n'ai pas d'erreur ni à la compilation ni a l'execution) je n'arrive pas a envoyer des commandes Hayes à mon modem.
    Ce qui est d'autant plus etrange c'est que lorsque je lance cette classe, et qu'ensuite j'interroge mon modem via Windows, ce dernier ne repond plus! C'est donc que mes commandes ont quand meme eu un effet sur le modem...

    Je vous met ci dessous le code que j'utilise , si quelque'un a une idée de ce que je dois faire (ou ne pas faire) ...
    Dans tous les cas je vous remercie d'avoir pris la peine de lire mon post !
    bonne journée

    le lanceur :

    public class TestSimpleWrite {

    public static void main(String arg[]){
    SimpleWrite testeurPort = new SimpleWrite();
    testeurPort.setDelaiObtentionPort(10000);
    testeurPort.initWin32Driver();
    testeurPort.AffichageListPort();
    testeurPort.getPort("COM1");
    testeurPort.lanceCommande();
    testeurPort.libereSerialPort();
    }
    }


    la classe qui me pose problème


    import com.sun.comm.Win32Driver;
    import java.io.*;
    import java.util.*;
    import javax.comm.*;

    public class SimpleWrite {
    public Enumeration portList;
    public CommPortIdentifier portId;
    public SerialPort serialPort;
    public OutputStream outputStream;
    private int delaiObtentionPort; //milliseconde
    private int bauds;

    public SimpleWrite() {
    portList = CommPortIdentifier.getPortIdentifiers();
    }

    public void setDelaiObtentionPort(int delai) {
    delaiObtentionPort = delai;
    }

    public void setBaud(int newBaud) {
    bauds = newBaud;
    }

    public void AffichageListPort() {
    CommPortIdentifier portCourant = null;
    System.out.println("Affichage de la liste des ports ");
    boolean fin = false;
    while (!fin) {
    try {
    if (portList.hasMoreElements()) {
    portCourant = (CommPortIdentifier) portList.nextElement();
    System.out.println(portCourant.getName());
    }
    else {
    fin = true;
    }
    }
    catch (NoSuchElementException ex) {
    System.out.println("Exception plus de port ");
    }
    }
    }

    public void initWin32Driver() {
    System.out.println("initialisation du driver ");
    Win32Driver w32Driver = new Win32Driver();
    w32Driver.initialize();
    }

    public void libereSerialPort() {
    serialPort.close();
    }


    public void paramSerialPort() {
    try {
    serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
    serialPort.setSerialPortParams(bauds, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
    }
    catch (UnsupportedCommOperationException ex) {
    System.out.println("Erreur Paramatrage du port '" + serialPort.getName() + "' " + ex.toString());
    ex.printStackTrace();
    }

    serialPort.notifyOnDataAvailable(true);
    serialPort.notifyOnCarrierDetect(true);
    serialPort.notifyOnDataAvailable(true);
    serialPort.notifyOnBreakInterrupt(true);
    serialPort.notifyOnCTS(true);
    serialPort.notifyOnDSR(true);
    serialPort.notifyOnFramingError(true);
    serialPort.notifyOnOutputEmpty(true);
    serialPort.notifyOnOverrunError(true);
    serialPort.notifyOnParityError(true);
    serialPort.notifyOnRingIndicator(true);

    }

    public void lanceCommande() {
    String m0 = "AT";
    String m1 = "ATE1";
    String m2 = "ATI";
    String m3 = "AT&Z0=T12345678";
    String m4 = "ATD0140127674\n";
    String m5 = "ATDS=0";

    try {
    outputStream = serialPort.getOutputStream();
    System.out.println("Recuperation du outPutStream : OK ");
    }
    catch (IOException e) {
    System.out.println("Erreur recuperation outPutStream " + e.toString());
    e.printStackTrace();
    }
    try {
    serialPort.setSerialPortParams(9600,
    SerialPort.DATABITS_8,
    SerialPort.STOPBITS_1,
    SerialPort.PARITY_NONE);
    System.out.println("Parametrage du modem : OK");
    }
    catch (UnsupportedCommOperationException e) {
    System.out.println("Impossible de parametrer " + e.toString());
    e.printStackTrace();
    }
    try {
    outputStream.write(m0.getBytes());
    System.out.println("ecriture de m1 (" + m0 + ") OK");

    outputStream.write(m1.getBytes());
    System.out.println("ecriture de m2 (" + m1 + ") OK");

    outputStream.write(m2.getBytes());
    System.out.println("ecriture de m0 (" + m2 + ") OK");

    outputStream.write(m3.getBytes());
    System.out.println("ecriture de m3 (" + m3 + ") OK");

    outputStream.write(m4.getBytes());
    System.out.println("ecriture de m4 (" + m4 + ") OK");

    outputStream.write(m5.getBytes());
    System.out.println("ecriture de m5 (" + m5 + ") OK");

    outputStream.close();

    }
    catch (IOException e) {
    System.out.println("Impossible d'ecrire " + e.toString());
    e.printStackTrace();
    }
    }


    public void getPort(String nomPort) {
    CommPortIdentifier portId = null;
    try {
    portId = CommPortIdentifier.getPortIdentifier(nomPort);
    }
    catch (NoSuchPortException ex) {
    System.out.println("erreur Port '" + nomPort + "' " + ex.toString());
    ex.printStackTrace();
    }
    try {
    serialPort = (SerialPort) portId.open("Mon_Appli", delaiObtentionPort);
    System.out.println("Obtention du port '" + serialPort.getName() + "' : OK");
    }
    catch (PortInUseException ex) {
    System.out.println("erreur Port '" + nomPort + "' deja ouvert : " + ex.toString());
    ex.printStackTrace();
    }
    }
    }
    • Partager sur Facebook
    • Partager sur Twitter
      5 décembre 2006 à 13:54:53

      Le message qui suit est une réponse automatique activée par un modérateur.
      Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


      Merci d'utiliser les balises de code


      Bonjour,

      Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
      Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message en entourant votre code des balises <code > et </code> ?

      Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.

      Voici un exemple de code non coloré avec la balise "citation" (mauvais exemple) :

      Citation

      int main(int argc, char *argv[])
      {
      long choixOperation;

      printf("Choisissez l'operation a effectuer");
      /* etc. */
      }



      Voici maintenant le même code coloré, si vous aviez utilisé la balise "code" (bon exemple) :

      int main(int argc, char *argv[])
      {
          long choixOperation;

          printf("Choisissez l'operation a effectuer");
          /* etc. */
      }


      C'est plus clair n'est-ce pas ? :)
      N'hésitez pas à éditer votre message pour changer la balise afin de colorer votre code.

      Plus d'informations à ce sujet


      Merci de votre compréhension :)
      Les modérateurs.
      • Partager sur Facebook
      • Partager sur Twitter

      piloter un fax en java

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown