hi. why the button not working. please help. thank you.
hi, i'm khifa. i'm newbie in java. i have a problem with my java application. the button not working well. i need to press the button until 6 times then the data will be fully write at the comport. can some one help how can i just click one then the data will be write and the output will just appear? thank you. your help are very needed and very appreciated. :)
my code is
Code:
//this is the button action listener. i put the button in open connection.
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String t=subnet.getText();
String n=node.getText();
int ct = Integer.parseInt(t);
int cn = Integer.parseInt(n);
vt = Integer.toHexString(ct);
vn = Integer.toHexString(cn);
String s;
if(cn<16){
s = "323F010"+vn+"2304"+vt+"0000000000000400003088010300";
}else{
s = "323F01"+vn+"2304"+vt+"0000000000000400003088010300";
}
System.out.println(s);
try{
System.out.println("button");
os.write(s.getBytes());
os.flush();
System.out.println("button off");
}
catch(IOException ex){
System.out.println("Cannot send");
}
messageAreaIn.append("\nRead total Energy\n");
}
public void serialEvent(SerialPortEvent e) {
// Create a StringBuffer and int to receive input data.
StringBuffer inputBuffer = new StringBuffer();
int newData = 0;
// Determine type of event.
switch (e.getEventType()) {
// Read data until -1 is returned. If \r is received substitute
// \n for correct newline handling.
case SerialPortEvent.DATA_AVAILABLE:
System.out.println("data available");
while (newData != -1) {
try {
newData = is.read();
if (newData == -1) {
break;
}
if ('\r' == (char)newData) {
inputBuffer.append('\n');
} else {
inputBuffer.append((char)newData);
}
} catch (IOException ex) {
System.err.println(ex);
return;
}
}
// Append received data to messageAreaIn.
System.out.println(new String(inputBuffer));
//String str = new StringBuffer(new StringBuffer(new String(inputBuffer)).reverse().toString().substring(0, 8)).reverse().toString();
String str =new StringBuffer(inputBuffer.reverse().toString().substring(5, 7)).reverse().toString();
System.out.println(str);
String vtr =new StringBuffer(inputBuffer.toString().substring(7, 9)).reverse().toString();
System.out.println(vtr);
String ktr =new StringBuffer(inputBuffer.toString().substring(1, 2)).reverse().toString();
System.out.println(ktr);
int k= Integer.parseInt(ktr,16);
String low = str+vtr;
System.out.println(low);
int j1=0;
try{
j1 = Integer.parseInt(low,16);
}
catch(NumberFormatException nfe){
System.out.println("NumberFormatException: " + nfe.getMessage());
}
j=j1;
System.out.println("Before bahagi\n"+j);
float scale = parameters.getScale();
System.out.println("Scale = " +scale);
last = j/scale;
System.out.println("After bahagi\n"+last);
DecimalFormat percy = new DecimalFormat("#.00");
fin = percy.format(last);
if((last>0)&&(j!=2)&&(k!=15))
{
messageAreaIn.append("\n"+fin+"kW.h"+"\n");
}
else
{
messageAreaIn.append("\nerror"+"\n");
}
break;
// If break event append BREAK RECEIVED message.
case SerialPortEvent.BI:
messageAreaIn.append("\n--- BREAK RECEIVED ---\n");
}
}
if anyone need to see th code please email me at khifa_monqius@yahoo.com :SICK: