Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Seriale E At

    Salve a tutti, ho un problemino.
    Devo realizzare un programma che comunichi con un modem gsm e che quando si verifica un determinato evento, mandi un sms per avvisare del fatto avvenuto.

    Ora, ho scaricato il pacchetto javacomm e sono riuscito a farlo funzionare;
    ho scritto anche il codice relativo alla comunicazione con la porta seriale, e credo tutto vada bene, anche perchè il modem esterno che uso come prova (Sportster Voice della USRobotics), si accende per un piccolo istante, facendomi pensare che tutto sia ok.

    Non riesco però a capire come posso mettermi in ascolto e aspettare un response da parte del modem. Qualcuno può darmi una mano?

    Riporto di seguito le due classi che ho realizzato.

    codice:
    /********************************************************************************/
    /*												*/
    /*		Programma Che cerca le porte seriali disponibili nel computer		*/
    /*		e attraverso la porta seriale scelta comunica con un modem		*/
    /*		GSM per mandare SMS attraverso comandi AT				*/
    /*												*/
    /*				POWERED BY TAURUS					*/
    /*												*/
    /********************************************************************************/
    
    import java.io.*;
    import java.util.*;
    import javax.comm.*;
    
    public class Seriale {
    	
    	
    	public static void main(String []args) throws NoSuchPortException,PortInUseException,UnsupportedCommOperationException{
    		
    		SMS sms=new SMS();
    		//Enumerates ports available on the system
    		Enumeration en = CommPortIdentifier.getPortIdentifiers();
    		
    		SerialPort seriale=null;
    		
    		CommPortIdentifier id,portId=null;
    		
    		CommPort porta=null;
    	
    		InputStream is;
    				
    		OutputStream os;
    		
    		//while there are ports available on the system
    		while(en.hasMoreElements()){
    			
    			//Save them on a CommPortIdentifier variable type
    			id = (CommPortIdentifier)en.nextElement();
    
    			//And print them
    			if(id.getPortType() == CommPortIdentifier.PORT_SERIAL){
    				System.out.println("PORTE SERIALI: "+id.getName());
    				
    				if(id.getName().equals("COM1"))
    					portId=id;
    				
    				porta = portId.open("PROGRAMMA",2000);
    				
    				try{
    					
    				     os=seriale.getOutputStream();	
    				     is=seriale.getInputStream();	
    				}
    				catch(IOException e){}
    				catch(NullPointerException e){}
    				
    				seriale = (SerialPort)porta;		
    				seriale.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
    			}
    			
    		}
    		
    		System.out.print("\n\n");
    		System.out.println("****************************************");
    		System.out.println("PORTA SELEZIONATA: "+portId.getName());
    		System.out.println("BAUD RATE: "+seriale.getBaudRate());
    		System.out.println("DATABITS: "+seriale.getDataBits());
    		System.out.println("STOPBITS: "+seriale.getStopBits());
    		System.out.println("PARITY: "+seriale.getParity());
    		System.out.println("****************************************");
    		System.out.println("\n\n");
    	
    		sms.call();
    		
    		
    	}
    
    	
    }
    codice:
    import java.io.*;
    import java.util.*;
    import javax.comm.*;
    
    public class SMS{
    	
        String text;	
        String number;
        OutputStream out;
    	
    	
        //Constructor	
        public SMS(String testo,String numero){
            
    	this.text=testo;
            this.number=numero;
        }
        
        public SMS(){}
    
           
    	
        public String getNumber(){
    	return number;    
        }	
        
        public void setNumber(String num){
    	number=num;    
        }
        
        public String getText(){
    	return text;    
        }
        
        public void setText(String text1){
    	text=text1;    
        }
        
        public void call(){
    	try{
    		out.write(("ATE1").getBytes());
    		out.write(("ATDT 01734692200").getBytes());    
    	}
    	catch(IOException e){}
    	catch(NullPointerException e){}
        }
        
    }
    
    Ringrazio tutti coloro che mi vorranno dare una mano.
    
    Per qualsiasi chiarimento, chiedetemi pure.
    
    Taurus
    Believe in GOD, you could only have Benefits from him!!

  2. #2
    sei riuscito a risolvere questo problema?
    cioe riesci adessoa d ottenere la risposta da parte del modem una banale response?
    Volsi cola dove si puote ciò che si vuole e più non dimandare

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.