Pages: [1]   Go Down
Author Topic: Problem caused by previous data flowing in  (Read 807 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi folks,

i was trying to send  data from an arduino to another using xbee modules. But what i observe on the receiver end is that i continuously keep getting '1's from the previous code which was burnt into the sender mote. Flushing does not help and the 1s just don't stop coming in from the serial COM port. What do i do? Please help.

Thanks in advance.

--
Priyankar
Logged

Manchester (England England)
Online Online
Brattain Member
*****
Karma: 596
Posts: 33266
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You change line 213 to read .....
Hang on, lost the mind link, you are just going to have to post your code sorry.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;

import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import java.util.Enumeration;


public class SerialTest implements SerialPortEventListener {
SerialPort serialPort;
static PrintWriter print;

        /** The port we're normally going to use. */
private static final String PORT_NAMES[] = {
"/dev/tty.usbserial-A9007UX1", // Mac OS X
"/dev/ttyUSB0", // Linux
"COM15", // Windows
};
/**
* A BufferedReader which will be fed by a InputStreamReader
* converting the bytes into characters
* making the displayed results codepage independent
*/
private BufferedReader input;
/** 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;
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 {
//input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
String inputLine=input.readLine();
System.out.println(inputLine);


} catch (Exception e) {
System.err.println(e.toString());
}
}
// Ignore all the other eventTypes, but you should consider the other ones.
}

public static void main(String[] args) throws Exception {
SerialTest main = new SerialTest();
main.initialize();
Thread t=new Thread() {
public void run() {
//the following line will keep this app alive for 1000 seconds,
//waiting for events to occur and responding to them (printing incoming messages to console).
try {Thread.sleep(1000000);} catch (InterruptedException ie) {}
}
};
t.start();
System.out.println("Started");


}


}
« Last Edit: June 18, 2013, 02:07:39 am by pryan225 » Logged

Manchester (England England)
Online Online
Brattain Member
*****
Karma: 596
Posts: 33266
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Now read the how to use this foroum sticky and modify the post so it includes the proper code tags.

Anyway ths is Java code you said you had two arduino's talking?
« Last Edit: June 18, 2013, 02:03:40 am by Grumpy_Mike » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

yes it had the two Arduinos talking. and the code i pasted is of the receiver where i am printing the received values. Sorry... will modify the post.
Logged

Manchester (England England)
Online Online
Brattain Member
*****
Karma: 596
Posts: 33266
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for making the change.

However this is only a bit of the code and from what I can see it is not arduino code.

If it is arduino code then wee need it all so we can compile it.

It looks however like it is code outside my pay grade.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello thanks for replying. All i was doing was to follow the tutorial given here: http://playground.arduino.cc/Interfacing/Java
Logged

Manchester (England England)
Online Online
Brattain Member
*****
Karma: 596
Posts: 33266
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Well that tutorial is nothing to do with programming Arduinos so I am confused about what you are trying to do.
Logged

Pages: [1]   Go Up
Jump to: