Boa tarde a todos.
Estou tentando desenvolver um aplicação que capture os dados enviados por uma porta serial em uma balança toledo.
Já li varios artigos inclusive um tutorial aqui do GUJ, já testei a API RXTX, porem a duvida que me cabe é a sequninte, em se tratando de uma aplicação WEB, como eu faço para disponibilizar um programa local que fique escutando a porta serial e como eu irei tratar isto na minha aplicação WEB.
Ou seja , eu já li e já vi que necessito de duas aplicações uma que vai ficar local escutando a porta, e a outra WEB que vai receber estes dados, mas não sei como será esta local, muitos falam em VB outros falam em C eu quer fazer em java.
agradeço deste já a ajuda que vier.
Olá, seja bem vindo! Sua dúvida não está clara para mim… veja se entendi direito: vc quer ter uma aplicação cliente que escute os dados via porta serial. Certo. Os dados vao vir da balança. Certo. E pra que a aplicação Web?
Balança >>>dados via serial >>> aplicação cliente
fiquei sem entender tb…
pq aplicação web?
e não uma desktop com conexão cliente/servidor ?
Hmm… deixa eu ver, então o caminho é esse:
balança envia dados via serial para Aplicação no Cliente envia dados via xxxx(socket por exemplo) Aplicação Servidor
é isso?
Deixa ver se consigo explicar direito…
Eu testei aplicação com RXTX que leu os dados da porta serial, porem até o momento somente trabalhei com aplicações WEB, não sei como disponibilizar de uma outra forma , tipo console como foi sitado.
Qualquer sujestão será bem vinda.
Agradeço deste já a todos pela atenção.
Supondo que a aplicação web faça sentido, talvez um applet resolveria a questão.
Eu li alguns materiais que apontam a criação de um Applet para resolver o problema.
Mas como eu crio este applet, estou usando o netbeans 6, e como eu disse, só trabalhei com web até agora, a criação de um applet me pareceu tão complicado…(posso estar enganado é claro)
Opa aqui tem um programa que a porta serial:
http://www.guj.com.br/posts/list/81858.java
ai vai um exemplo de servlet que vc pode fazer para receber os dados da aplicação cliente (a que vai ficar lendo os dados da balança):
aconselho a não usar applet, pq para fazer conexão com a rede/internet e ler arquivos é necessário assinar a applet…
SERVLET!!!
public class Servlet extends HttpServlet {
ClassLoader classLoader;
public Servlet() {
super();
classLoader = this.getClass().getClassLoader();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException {
try{
ObjectInputStream objectInputStream = new ObjectInputStream(request.getInputStream());
Integer opcao = (Integer) objectInputStream.readObject();
objectInputStream.close();
File pasta = new File(classLoader.getResource("../imagens").toURI());
File imagens[] = pasta.listFiles();
if(opcao == -1){
ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());
out.writeObject(imagens.length);
out.flush();
out.close();
}
else{
ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());
URL url = classLoader.getResource("../imagens/" + imagens[opcao].getName());
out.writeObject(new ImageIcon(url));
out.flush();
out.close();
}
}
catch(Exception e){e.printStackTrace();}
}
}
COMO CHAMAR O SERVLET!!!
public class ServerConnection {
public static URL url;
static{
try{
//url = new URL(System.getProperty("urlServlet")););
url = new URL("http://localhost:8080/slide/Servlet");
}
catch(MalformedURLException e){
JOptionPane.showMessageDialog(null, "Houve um erro ao se conectar com o servidor\nErro: " + e.getMessage());
System.exit(0);
}
}
public static ImageIcon getImagem(int numeroImagem){
try{
URLConnection urlConn = url.openConnection();
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
urlConn.setUseCaches(false);
urlConn.setDefaultUseCaches(false);
urlConn.setRequestProperty("content-type", "application/octet-stream");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(urlConn.getOutputStream());
objectOutputStream.writeObject(numeroImagem);
objectOutputStream.flush();
objectOutputStream.close();
ObjectInputStream in = new ObjectInputStream(urlConn.getInputStream());
ImageIcon imagem = (ImageIcon)in.readObject();
in.close();
return imagem;
}
catch(IOException e){
JOptionPane.showMessageDialog(null, "Houve um erro ao se conectar com o servidor\n" +
"Não foi possÃvel abrir ou fechar a conexão com o servidor\n" + e.getMessage());
return null;
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Houve um erro ao se conectar com servidor\nErro: " + e.getMessage());
return null;
}
}
}
Dá uma olhada neste link pra começar: http://www.web-source.net/java_applet_tutorial.htm
Faça pequenos testes até dominar a idéia do applet, que na verdade é simples, principalmente para quem já conhece web.
flw