ช่วยดู code java ให้หน่อยครับได้แล้วแต่ว่า ..

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

darinfc
PHP Newbie
PHP Newbie
โพสต์: 1
ลงทะเบียนเมื่อ: 29/02/2012 3:27 am

ช่วยดู code java ให้หน่อยครับได้แล้วแต่ว่า ..

โพสต์ที่ยังไม่ได้อ่าน โดย darinfc »

ผมเอาโค้ดจาวาจากเว็บ
http://www.embeddedj.co.th/node/25
ลองทำตามได้หมดแล้วครับ ค่าถูกส่งไปแสดงที่ browser เรียบร้อย
แต่ปัญหาของผมคือ ผมไม่ต้องการค่านั้นไปโชว์ที่ browser แต่ต้องการเอาค่านั้นไปเก็บไว้ใน database ครับ

ปล. ผมมีโค้ด ตย database บ้างแต่โค้ดนั้นเป็นของอีก ตย นึง ที่จะต้องเลือกค่าจากหน้า browser ครับ รบกวนช่วยคิดหน่อยครับ

นี่เป็นโค้ดจาก http://www.embeddedj.co.th/node/25 ทั้งหมดครับ

ThreadCan.java

โค้ด: เลือกทั้งหมด

class ThreadCan implements Runnable {
    TempReader app = new TempReader();
public void run(){
// TODO Auto-generated method stub
if (app.init()){
System.out.println("Wait for read temperature from CAN");
app.readTempViaCAN();
}//if (app.init());
}
}



TempReader.java

โค้ด: เลือกทั้งหมด

import se.imsys.comm.CAN;
import se.imsys.comm.CANEventListener;
import se.imsys.comm.CANException; 
import se.imsys.comm.CANFrame;

public class TempReader implements CANEventListener {
	private static final int COM_TO_CAN_ID = 0x550;
private static final int CAN_TO_COM_ID1 = 0x350;
private static final int CAN_TO_COM_ID2 = 0x351; 
private static final int CAN_SUBMASK = 0x35F;
// 	Baudrate 1=500Kb/s,2=250Kb/s,4=125Kb/s,8=6.5Kb/s
private static final int BRP = 5;
private static boolean DEBUG = false;

private CAN cp;
private CANFrame cf;

static public String Temperature1, Temperature2 = "0.0";

/**********************************************************
* FUNCTION
**********************************************************/
public void CANEvent(int event) {
// TODO Auto-generated method stub
try {
if ((event & CAN.IR_RI) != 0){
while (cp.receivePoll(cf)){
if (DEBUG){
System.out.println("Receive Event.");
System.out.println("Frame received:"); 
System.out.print("ID: "+Integer.toHexString(cf.ID));
if (cf.extendedID) System.out.print("(extenedID)");
if (cf.remoteFrameRequest) System.out.print("(remoteFrameRequest)");
System.out.println(); System.out.print("data: ");
for (int i=0; i < cf.length; i++) System.out.print((char)cf.data[i]);
System.out.println();
}//if (DEBUG);
if (!cf.extendedID && (cf.ID == COM_TO_CAN_ID)){
cf.ID = CAN_TO_COM_ID2;
cp.sendFrame(cf);

}else{//if (!cf.extenedID && (cf.ID == COM_TO_CAN_ID));
if (cf.extendedID && (cf.ID == CAN_TO_COM_ID1)){
	String datacan = new String(cf.data); 
	datacan.trim();

 // System.out.println("Computer ("+Integer.toHexString(CAN_TO_COM_ID1)+")
//>> "+datacan);
Temperature1= datacan.substring(2);
}//if (cf.extendedID && (cf.ID == COM_TO_CAN_ID));
if (cf.extendedID && (cf.ID == CAN_TO_COM_ID2)){
String datacan = new String(cf.data);
datacan.trim();
// System.out.println("Computer ("+Integer.toHexString(CAN_TO_COM_ID2)+")
//>> "+datacan);
Temperature2= datacan.substring(2);
}//if (cf.extendedID && (cf.ID == CAN_TO_COM_ID2));
}//if (!cf.extendedID && (cf.ID == COM_TO_CAN_ID));
}//while(cp.receivePoll(cf));
}//if ((event & CAN.IR_RI) != 0);
}catch (CANException e){
System.out.println(e.getMessage());
}catch (Throwable e){
System.out.println(e.getMessage());
e.printStackTrace();
}
}
public boolean init() {
boolean canOpen = false;
boolean canEnabled = false;
try {
cp= new CAN();
canOpen = true;
//create a CAN fream
cf= new CANFrame();
//single sample point at 85%, 20 clocks per bit
cp.setSampleRate(3);
cp.setTSEG1(4);
cp.setTSEG2(3);
cp.setSynchronizationJumpWidth(1);
cp.setBaudRatePrescaler(BRP);
cp.set29BitGlobalIDMask(COM_TO_CAN_ID ^ CAN_SUBMASK);
cp.set29BitGlobalArbitrationID(COM_TO_CAN_ID);
cp.addEventListener(this);
cp.writeRegister(cp.REG_IER,(byte)(cp.readRegister(cp.REG_IER)|CAN.IER_DOIE));
cp.enableController();
canEnabled= true;
}catch (CANException e) {
System.out.println(e.getMessage());
}catch (Throwable e){
System.out.println(e.getMessage());
e.printStackTrace();
}
if (!(canOpen && canEnabled)){
if (canOpen){
try {
cp.close();
}catch(CANException e){
System.out.println(e.getMessage());
}
}//if (canOpen);
return false;
}//if (!(canOpen && canEnabled));
return true;
}
public void readTempViaCAN(){
CANFrame ccf = new CANFrame();
try{
ccf.ID = COM_TO_CAN_ID;
ccf.extendedID= true;
ccf.remoteFrameRequest= false;
while(true){
}
}catch (Throwable e){
System.out.println(e.getMessage());
}
try {
cp.close();
}catch (CANException e){
System.out.println(e.getMessage());
}
}
}

ShowTempOnWeb.java

โค้ด: เลือกทั้งหมด

import se.imsys.net.HttpServer;
public class ShowTempOnWeb {
/**
* @param args
*/
public static void main(String[] args) { 
	ThreadCan can = new ThreadCan(); 
	Thread c = new Thread(can);
c.start();

HttpServer hs = new HttpServer(); 
Thread t = new Thread(hs); 
hs.addCgi(new ShowTempCgi()); 
t.start();
}

}



ShowTempCgi.java

โค้ด: เลือกทั้งหมด

import se.imsys.net.*;
import java.io.*; 
import java.util.*;
public class ShowTempCgi implements HttpCgi{
public ShowTempCgi(){

}
public String getName(){
return("show.cgi");
}
public void execute(Hashtable variables, OutputStream os) throws IOException, HttpException{
String s;
s = "Content-Type: text/html\r\n\r\n\r\n";
s += "<HTML><TITLE>Result for Temperature.</TITLE>\n";
s += "<BODY>\n";
s += "<H1>Temperature Reader(0x350)= "+TempReader.Temperature1+"</H1><br>\n";
s += "<H1>Temperature Reader(0x351)= "+TempReader.Temperature2+"</H1><br>\n";
s += "</BODY></HTML>\n";
os.write(s.getBytes());
}
}


ค่าที่ส่งไปค่า Temperature1 กับ Temperature2 ครับ
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 88