/* * DS2450Servlet.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.OneWireContainer20; /** * * @author cjb * @version */ public class DS2450Servlet extends HttpServlet { /** Initializes the servlet. */ public void init(ServletConfig config) throws ServletException { super.init(config); } /** Destroys the servlet. */ public void destroy() { } private OneWireContainer20[] getDevices() throws OneWireException { DSPortAdapter pa = null; pa = OneWireAccessProvider.getDefaultAdapter(); //target family 0x20 pa.targetFamily(0x20); Enumeration e = pa.getAllDeviceContainers(); Vector v = new Vector(); int i = 0; while( e.hasMoreElements()) { v.addElement((OneWireContainer20) e.nextElement()); } OneWireContainer20[] devices = new OneWireContainer20[v.size()]; v.copyInto(devices); return(devices); } private void drawDocument(PrintWriter out) { OneWireContainer20[] devices = new OneWireContainer20[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("DS2450 Servlet\r\n\r\n"); out.write(""); out.write("\r\n"); out.write("\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n

"); out.write("DS2450 Servlet

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

\r\n" + (new OneWireContainer20()).getDescription()); out.write("\r\n
"); 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"); } catch(OneWireException e) { out.write("One Wire Exception:" + e.getMessage()); } } out.write("\r\n
\r\n"); out.write("
Device\r\nData
\r\n"); out.write("\r\n"); byte[] state = new byte[0]; try { state = devices[i].readDevice(); int numchan = devices[i].getNumberADChannels(); out.write(devices[i].getName() + "@" + devices[i].getAddressAsString()); boolean[] convert = new boolean[numchan]; for(int j=0;j"); out.write("\r\n"); for(int j=0;j\r\n"); if(devices[i].hasADAlarms()) { out.write("\r\n"); } out.write(""); out.write("\r\n\r\n"); } out.write("
\r\n"); out.write("\r\n"); out.write("Ch " + j + ":\r\n"); out.write(""); String v = Double.toString(voltages[j]); if(v != null) { if(v.length() > 5) { out.write(v.substring(0,5) + "v
\r\n"); } else { out.write(v + "v
\r\n"); } } else { out.write("no reading
\r\n"); } out.write("
"); out.write("
\r\n"); out.write("\r\n"); out.write("Range:\r\n"); out.write(""); out.write("
"); out.write("Res:\r\n"); out.write(""); out.write("
\r\n"); out.write("\r\n"); out.write("Output:
\r\n"); out.write("\r\n"); out.write("
\r\n"); out.write("\r\n"); out.write("Lo: "); if(devices[i].hasADAlarmed(j,OneWireContainer20.ALARM_LOW,state)) { out.write("   Alarm\r\n"); } else { out.write("No Alarm\r\n"); } out.write("\r\n"); out.write(""); out.write("
\r\n"); out.write("Hi: "); if(devices[i].hasADAlarmed(j,OneWireContainer20.ALARM_HIGH,state)) { out.write("   Alarm\r\n"); } else { out.write("No Alarm\r\n"); } out.write("\r\n"); out.write("\r\n"); out.write("
\r\n"); out.write("
\r\n"); out.write("
"); } 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 { OneWireContainer20[] devices = new OneWireContainer20[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 suffix = address + "_" + channel; for(int i=0;i

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 "DS2450l Quad A/D Convertor servlet"; } }