Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    59

    sapere se porta com è occupata

    Ciao a tutti!
    Qualcuno di voi sa qualche comando per scoprire se la porta com presa in esame è occupata o libera? Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    59

    lanciare eccezione

    Ciao a tutti!
    Vi spiego il mio problema.
    Siccome devo comunicare con un modem, faccio un controllo sulla qualità del segnale.. grazie a questo comando:

    out.write (("AT+CSQ" + String.valueOf(this.invio)).getBytes());

    Il mio problema è questo: se gli passo la porta giusta su cui è collegato il modem, allora Eclipse va avanti senza alcun problema.
    Se invece gli passo una porta sbagliata, il programma si blocca e non va avanti.
    Con quale istruzione posso evitare di farlo bloccare, e magari fargli stampare "La porta inserita non è corretta"?

    Grazie!!!!!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Visto che l'argomento è strettamente correlato, ho unito la discussione a una precedentemente aperta.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    147
    Potresti utilizzare RXTX (se non lo fai già) e implementare un controllo come spiegato nel wiki ufficiale. Se la COM è occupata o inesistente, ti gestisci l'eccezione e vai avanti...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    59
    Veramente non so proprio cosa sia rxtx..

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    147
    Il tuo programma come dialoga con la COM?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    59
    tramite l'inputstream e outputStream

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    147
    Beh questo era ovvio... Ma il protocollo seriale te lo implementi tu o utilizzi qualche libreria?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    59
    questo è il mio codice:

    codice:
    	public void SetSerialPort(Properties prop) throws Exception {
    		
    		OutputStream out = null; 
    		InputStream in = null;
    		dev_serial = "com7";
    		portList = CommPortIdentifier.getPortIdentifiers();
    		boolean portFound = false;
    
    		String driverName = "com.sun.comm.Win32Driver";
    		try {
    			CommDriver commdriver = (CommDriver)Class.forName(driverName).newInstance();
    			commdriver.initialize();
    		} catch (Exception e2) {
    			e2.printStackTrace();
    		}
    		
    		while (portList.hasMoreElements()) {
    
    			portId = (CommPortIdentifier) portList.nextElement();
    			
    			System.out.println("portId name: " + portId.getName() + ", type: " + portId.getPortType() + ", owner: " + portId.getCurrentOwner());
    			
    			if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
    
    				String [] array = prop.getProperty("port.list").split(" ");
    				
    //				for (int i=0; i <= array.length; i++ ) {
    //					dev_serial = array [i];
    //				}
    				
    				if (portId.getName().equalsIgnoreCase(dev_serial)) {
    				
    					System.out.println("Found port " + dev_serial);
    					portFound = true;
                
    					try {
    						serialPort = (SerialPort) portId.open("SimpleWrite", 2000);
    					} catch (PortInUseException e) {
    						System.out.println("Port in use.");
    						continue;
    						
    					}
    					try {
    						out = serialPort.getOutputStream();
    						in = serialPort.getInputStream();
    						
    					} catch (IOException e) {
    						e.printStackTrace();
    						System.out.println("Error: " + e.getMessage());
    						continue;
    					}
    					try {
    						serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
    					} catch (UnsupportedCommOperationException e) {
    						e.printStackTrace();
    						System.out.println("Error: " + e.getMessage());
    						continue;
    					}
    					try {
    						serialPort.notifyOnOutputEmpty(true);
    					} catch (Exception e) {
    						e.printStackTrace();
    						System.out.println("Error setting event notification");
    						System.out.println(e.toString());
    					}
    					try {
    					/// COMANDI CSQ
    
    //					out.write (("AT+COPS?" + String.valueOf(this.invio)).getBytes());
    					out.write (("AT+CSQ" + String.valueOf(this.invio)).getBytes());

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    59
    quando arriva alla ultima riga si blocca.. Questo è un controllo che faccio per vedere se alla porta che gli passo vi è collegato un modem.. Pero nel caso in cui non vi sia collegato nessun modem, vorrei che al posto di bloccarsi mi dica "Porta non utilizzata dal modem!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.