Seri Porttan Okunan Veriyi Mail Gönderme

3.003 Kişi Okudu

Aşağıdaki kodlar sayesinden seri port üzerinden veri okuyup okunan veri mail olarak gönderilmektedir.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier; 
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent; 
import gnu.io.SerialPortEventListener; 
import java.util.Enumeration;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.corba.se.spi.orbutil.fsm.Input;


public class SerialTest implements SerialPortEventListener {
	SerialPort serialPort;
        /** The port we're normally going to use. */
	private static final String PORT_NAMES[] = { "COM2", // Windows
};
	/**
	* A BufferedReader which will be fed by a InputStreamReader 
	* converting the bytes into characters 
	* making the displayed results codepage independent
	*/
	private BufferedReader input;
	
	public static String a;
	/** The output stream to the port */
	private OutputStream output;
	/** Milliseconds to block while waiting for port open */
	private static final int TIME_OUT = 2000;
	/** Default bits per second for COM port. */
	private static final int DATA_RATE = 9600;

	public void initialize() {

		CommPortIdentifier portId = null;
		Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();

		//First, Find an instance of serial port as set in PORT_NAMES.
		while (portEnum.hasMoreElements()) {
			CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
			
			for (String portName : PORT_NAMES) {
				
				if (currPortId.getName().equals(portName))
				{
					portId = currPortId;
					System.out.println(currPortId.getName());
					break;
				}
			}
		}
		if (portId == null) {
			System.out.println("Could not find COM port.");
			return;
		}

		try {
			// open serial port, and use class name for the appName.
			serialPort = (SerialPort) portId.open(this.getClass().getName(),
					TIME_OUT);

			// set port parameters
			serialPort.setSerialPortParams(DATA_RATE,
					SerialPort.DATABITS_8,
					SerialPort.STOPBITS_1,
					SerialPort.PARITY_NONE);

			// open the streams
			input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
			output = serialPort.getOutputStream();

			// add event listeners
			serialPort.addEventListener(this);
			serialPort.notifyOnDataAvailable(true);
		} catch (Exception e) {
			System.err.println(e.toString());
		}
	}

	/**
	 * This should be called when you stop using the port.
	 * This will prevent port locking on platforms like Linux.
	 */
	public synchronized void close() {
		if (serialPort != null) {
			serialPort.removeEventListener();
			serialPort.close();
		}
	}

	/**
	 * Handle an event on the serial port. Read the data and print it.
	 */
	public synchronized void serialEvent(SerialPortEvent oEvent) {
		
		if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
			try {
				String inputLine=input.readLine();
				System.out.println(inputLine);
				
				char[] gelen = (char[]) inputLine.toCharArray();				
				for (int i=0 ; i<gelen.length;i++ ){="" output.write(gelen[i]);="" }="" gonder("civan.ahmetyasin@gmail.com",inputline,"sensör="" algılandı");="" system.out.println("mail="" gönderildi");="" a="inputLine;" catch="" (exception="" e)="" {="" system.err.println(e.tostring());="" ignore="" all="" the="" other="" eventtypes,="" but="" you="" should="" consider="" ones.="" private="" static="" void="" gonder(string="" tomail,="" string="" note,="" ad){="" final="" username=" Mail Gönderecek Mail Adres " ;="" password=" Sizin Mail Adresinizin Şifresi " properties="" props="new" properties();="" props.put("mail.smtp.auth",="" "true");="" props.put("mail.smtp.starttls.enable",="" props.put("mail.smtp.host",="" "smtp.gmail.com");="" props.put("mail.smtp.port",="" "587");="" session="" new="" javax.mail.authenticator()="" protected="" passwordauthentication="" getpasswordauthentication()="" return="" passwordauthentication(username,="" password);="" });="" try="" message="" mimemessage(session);="" message.setfrom(new="" internetaddress("="" info@microsoft.com"));="" message.setrecipients(message.recipienttype.to,internetaddress.parse(tomail));="" message.setsubject(ad);="" message.settext(note);="" transport.send(message);="" (messagingexception="" throw="" runtimeexception(e);="" public="" main(string[]="" args)="" throws="" exception="" serialtest="" main="new" serialtest();="" main.initialize();="" thread="" t="new" thread()="" run()="" following="" line="" will="" keep="" this="" app="" alive="" for="" 1000="" seconds,="" waiting="" events="" to="" occur="" and="" responding="" them="" (printing="" incoming="" messages="" console).="" {thread.sleep(1000000);}="" (interruptedexception="" ie)="" {}="" };="" t.start();="" system.out.println("started");="" <="" pre=""></gelen.length;i++>

Yayınlayan

Ahmet Yasin CİVAN

Mekatronik Mühendisi, Gömülü Yazılım Geliştiricisi.