hey this is great, we can add it to the library section of the site with your credits etc, we could also host it on Wiring cvs http://wiring.org.co/source if you want as well.Just let me know what do you want to do.

hi, I am integrating it into the Wiring libraries, I have a question reagarding the API,which set of functions are part of the end user API? If all of them it would be nice to rename some of them to be consistent with the Wiring API style, for example writeBitreadBit resetSearch etc. Let me know what do you think.

yes that´s it, also verify the coherence of the naming/functions, I am not familiar with OneWire protocol so I have questions about the functions, what does select does? or skip, readBit and writeBit, search etc. in the communication process, perhaps looking at examples will make it clearer to me. Thanks for doing this.

OneWire::select will select a given device on the 1W bus. Because many devices can exist on the same bus, calling select() with the ROM address of the desired device will cause it to listen to the next command. For example, issuing the following sequence on a 1W bus that contains a DS18B20 temp sensor will start the temperature conversion:

_1W.reset();_1W.select( rom);_1W.write(0xBE);

OneWire::skip(), on the other hand, tells all of the devices on the bus to listen to the next command. Essentially, it means "skip the ROM address." It would be applicable, for example, on a bus with only one device, where you don't care about its unique ROM.

I changed the naming for read_bit to readBit, etc. Although most users will only use the byte level routines, I left the bit routines in the public interface in case there are devices that have unique protocols that might require them.

Dear Alan, I have included the OneWire library in the repository for 0017, please check if things are ok so far. I am Still doing fixes before releasing 0017.http://wiring.uniandes.edu.co/source/trunk/wiring/lib/OneWire/