/* * OneWireTest.java * * Created on 18 October 2001, 03:42 * * Copyright 2001 Chris Bryden. Redistribute Freely. * * c.bryden@virgin.net * */ import java.util.*; import java.io.*; 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; import com.dalsemi.comm.*; /** * * @author cjb * @version */ public class OneWireTest extends java.lang.Object { /** Creates new OneWireTest */ public OneWireTest() { } private static boolean LCD = true; public static void main(String[] args) { try { if(LCD) { LCDPort.sendControl(0x38); //2 line display, 8 bit data LCDPort.sendControl(0x06); //set entry mode LCDPort.sendControl(0x0C); //turn on display, no cursor LCDPort.sendControl(0x01); //clear the screen sendStringLCD("1-Wire"); LCDPort.setAddress(40); sendStringLCD("init.."); } //get port adapter DSPortAdapter pa = null; try { pa = OneWireAccessProvider.getDefaultAdapter(); } catch (OneWireException e) { System.out.println ("Exception " + e); } //target family DS2406 pa.targetFamily(0x12); //four of them OneWireContainer12[] containers = new OneWireContainer12[4]; int i = 0; if(LCD) { LCDPort.sendControl(0x01); //clear the screen } for (Enumeration e = pa.getAllDeviceContainers(); e.hasMoreElements(); i++) { containers[i] = (OneWireContainer12) e.nextElement(); //turn LED off byte[] state = containers[i].readDevice(); int numChan = containers[i].getNumberChannels(state); containers[i].setLatchState(0, false, false, state); containers[i].writeDevice(state); //turn LED on state = containers[i].readDevice(); containers[i].setLatchState(0, true, false, state); containers[i].writeDevice(state); state = containers[i].readDevice(); // container details System.out.println("Address: " + containers[i].getAddressAsString()); System.out.println("Name: " + containers[i].getName()); System.out.println("Description: " + containers[i].getDescription()); System.out.println("Alternate Names: " + containers[i].getAlternateNames()); System.out.println((containers[i].isPowerSupplied(state) ? "Externally Powered":"Parasitically Powered")); System.out.println("Number of Channels " + numChan); if(LCD) { LCDPort.sendControl(0x01); //clear the screen sendStringLCD(containers[i].getAddressAsString().substring(0,8)); LCDPort.setAddress(40); sendStringLCD(containers[i].getAddressAsString().substring(8)); } //memory banks Enumeration memoryBanks = containers[i].getMemoryBanks(); int bankNum=0; while(memoryBanks.hasMoreElements()) { PagedMemoryBank bank = (PagedMemoryBank)memoryBanks.nextElement(); System.out.println("Memory Bank " + bankNum); System.out.println("Description: " + bank.getBankDescription()); System.out.println("Size: " + bank.getSize()); int numPages = bank.getNumberPages(); int pageLen = bank.getPageLength(); for(int k=0;k