/*
* DS2890Servlet.java
*
* Created on 20 November 2001, 21:11
*
* Copyright 2001 Chris Bryden. Redistribute Freely.
*
* c.bryden@virgin.net
*
*/
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.dalsemi.onewire.OneWireAccessProvider;
import com.dalsemi.onewire.*;
import com.dalsemi.onewire.adapter.*;
import com.dalsemi.onewire.container.*;
import com.dalsemi.onewire.container.OneWireContainer2C;
/**
*
* @author cjb
* @version
*/
public class DS2890Servlet extends HttpServlet {
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
/** Destroys the servlet.
*/
public void destroy() {
}
private OneWireContainer2C[] getDevices() throws OneWireException {
DSPortAdapter pa = null;
pa = OneWireAccessProvider.getDefaultAdapter();
//target family DS2890
pa.targetFamily(0x2C);
Enumeration e = pa.getAllDeviceContainers();
Vector v = new Vector();
int i = 0;
while( e.hasMoreElements()) {
v.addElement((OneWireContainer2C) e.nextElement());
}
OneWireContainer2C[] devices = new OneWireContainer2C[v.size()];
v.copyInto(devices);
return(devices);
}
private void drawDocument(PrintWriter out) {
OneWireContainer2C[] devices = new OneWireContainer2C[0];
try {
devices = getDevices();
} catch(OneWireException e) {
out.write("
One Wire Exception
");
e.printStackTrace(out);
out.write("");
return;
}
out.write("\r\n\r\n\r\n\r\n\r\n\r\n\r\n");
out.write("DS2890 Servlet\r\n\r\n");
out.write("\r\n\r\n");
out.write("\r\n");
out.write("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n");
out.write("DS2890 Servlet
");
out.write("\r\n");
out.write("
\r\n" + (new OneWireContainer2C()).getDescription());
out.write("\r\n");
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html;charset=ISO-8859-1");
drawDocument(response.getWriter());
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
OneWireContainer2C[] devices = new OneWireContainer2C[0];
try {
devices = getDevices();
} catch(OneWireException e) {
response.getWriter().write("One Wire Exception
");
e.printStackTrace(response.getWriter());
response.getWriter().write("");
return;
}
String address = request.getParameter("address");
int wiper = Integer.parseInt(request.getParameter("wiper"));
int pos = Integer.parseInt(request.getParameter("state"));
for(int i=0;i devices[i].numberOfWiperSettings(state)-1) {
pos = devices[i].numberOfWiperSettings(state)-1;
}
devices[i].setWiperPosition(pos);
} catch(OneWireException e) {
response.getWriter().write("One Wire Exception
");
e.printStackTrace(response.getWriter());
response.getWriter().write("");
return;
}
break;
}
}
response.setContentType("text/html;charset=ISO-8859-1");
drawDocument(response.getWriter());
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "DS2890 One-Wire digital potentiometer servlet";
}
}