/*
* DS2406Servlet.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.OneWireContainer12;
/**
*
* @author cjb
* @version
*/
public class DS2406Servlet extends HttpServlet {
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
/** Destroys the servlet.
*/
public void destroy() {
}
private OneWireContainer12[] getDevices() throws OneWireException {
DSPortAdapter pa = null;
pa = OneWireAccessProvider.getDefaultAdapter();
//target family DS2406
pa.targetFamily(0x12);
Enumeration e = pa.getAllDeviceContainers();
Vector v = new Vector();
int i = 0;
while( e.hasMoreElements()) {
v.addElement((OneWireContainer12) e.nextElement());
}
OneWireContainer12[] devices = new OneWireContainer12[v.size()];
v.copyInto(devices);
return(devices);
}
private void drawDocument(PrintWriter out) {
OneWireContainer12[] devices = new OneWireContainer12[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("DS2406 Servlet\r\n\r\n");
out.write("");
out.write("");
out.write("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n");
out.write("DS2406 Servlet
");
out.write("\r\n");
out.write("
\r\n" + (new OneWireContainer12()).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 {
OneWireContainer12[] devices = new OneWireContainer12[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 channel = Integer.parseInt(request.getParameter("channel"));
String newstate = request.getParameter("state");
for(int i=0;iOne Wire Exception
");
e.printStackTrace(response.getWriter());
response.getWriter().write("");
return;
}
if(newstate.equals("On")) {
devices[i].setLatchState(channel, true, false, state);
} else {
devices[i].setLatchState(channel, false, false, state);
}
try {
devices[i].writeDevice(state);
} 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 "DS2406 One-Wire dual addressable switch servlet";
}
}