/* * DS2404Servlet.java * * Created on 22 November 2001, 02:50 * * 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.OneWireContainer04; /** * * @author cjb * @version */ public class DS2404Servlet extends HttpServlet { /** Initializes the servlet. */ public void init(ServletConfig config) throws ServletException { super.init(config); } /** Destroys the servlet. */ public void destroy() { } /** Handles the HTTP GET method. * @param request servlet request * @param response servlet response */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { response.setContentType("text/html;charset=ISO-8859-1"); drawDocument(response.getWriter()); } /** Handles the HTTP POST method. * @param request servlet request * @param response servlet response */ /* protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { } */ /** Returns a short description of the servlet. */ public String getServletInfo() { return "DS2404 1-Wire real time clock servlet"; } private OneWireContainer04[] getDevices() throws OneWireException { DSPortAdapter pa = null; pa = OneWireAccessProvider.getDefaultAdapter(); //target family DS2404 pa.targetFamily(0x04); Enumeration e = pa.getAllDeviceContainers(); Vector v = new Vector(); int i = 0; while( e.hasMoreElements()) { v.addElement((OneWireContainer04) e.nextElement()); } OneWireContainer04[] devices = new OneWireContainer04[v.size()]; v.copyInto(devices); return(devices); } private void drawDocument(PrintWriter out) { OneWireContainer04[] devices = new OneWireContainer04[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("DS2404 Servlet"); out.write(""); out.write(""); out.write("\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n

"); out.write("DS2404 Servlet

"); out.write("\r\n"); out.write("

\r\n" + (new OneWireContainer04()).getDescription()); out.write("\r\n
"); out.write("\r\n"); out.write("\r\n


\r\n"); out.write("\r\n"); for(int i=0;i\r\n\r\n"); } out.write("\r\n
\r\n"); out.write("
Device\r\nTime
\r\n"); out.write("\r\n"); byte[] state = new byte[0]; try { state = devices[i].readDevice(); } catch(OneWireException e) { out.write("One Wire Exception:" + e.getMessage()); } out.write(devices[i].getName() + "@" + devices[i].getAddressAsString()); out.write("  " + (devices[i].isClockRunning(state) ? "(Running)":"(Stopped)") + ""); out.write("\r\n"); out.write("\r\n"); Date time = new Date(devices[i].getClock(state)); out.write(time.toString()); out.write("
\r\n"); out.write("
"); } }