Read Me
Information for Developers: 0. Overview 1. Resources 2. Packaging 3. Contacts 4. License ------------------------ 0. Overview ------------------------ OWFS is a set of packages for using 1-wire devices on a 1-wire bus under linux and other unix-like systems. The focus of these packages is a simple interface to the 1-wire bus. OWFS should be simple and stable rather than comprehensive. The main design feature of OWFS is that all access to the 1-Wire bus is based on a simple naming scheme. Little state information is kept. The most obvious implementations are a filesystem (where filenames correspond to 1-wire device properties) and a web server (where URLs correspond to 1-wire device properties). OWLIB is the library that provides most of the low-level function of the system. It talks directly to the (serial) port to the 1-wire bus master and through that to the devices. 1-wire protocol, error handling, and persistent storage is all handled in OWLIB. DEVELOPERS can extend OWLIB to cover other devices. Choose a similar chip to base your implementation. Copy the src/c/.c and src/include/.h files, changing the names. Add to src/c/Makefile.am and src/include/Makefile.am Add to src/include/ow_devices.h Add to /src/c/owlib.c That's all that's needed, except perhaps updating the documentation in ow_table.html. OWFS is the filesystem implementation of OWLIB. It uses FUSE (http://www.sf.net/projects/fuse) to present the filesystem in user space. You can write prgrams that access this filesystem. OWHTTP is a webserver implemtation of OWFS. It is a very simple server, and shows information quite simply. Indeed, OWHTTPD knows nothing of the individual 1-wire devices. All display is based solely on the property table in OWLIB. This means that no modification of OWHTTPD needs to be made when new devices or properties are created. ------------------------ 1. Resources ------------------------ 1-Wire information is well documented at http://www.ibutton.com Developer mailing list (quite active): http://lists.sf.net/lists/listinfo/owfs-developers OWFS website has design information: http://www.owfs.org Especially under the Advanced menu ------------------------ 2. Packaging ------------------------ Each component is separately packaged (OWFS, OWLIB, OWHTTPD, MAISON, OWAPI, etc) Vadim Tkachenko is the main designer of the packaging structure and code. We follow standard unix design with Source Standard: xxx.tar.gz ./bootstrap ; ./configure ; make ; make install or RPM Building -- directory locations: RPM packages can be made without being root. $HOME/.rpmmacros will be used, if it exists, else created. $HOME/.rpm is the default target directory, specifically: $HOME/.rpm/RPMS/i386 for binary and $HOME/.rpm/SRPMS for source rpm Note from Vadim: Caveat emptor: if $HOME/.rpmmacros exists, but doesn't contain usable configuration, too bad. I'm not going to bother to fix that - too many opportunities to screw up. ------------------------ 3. Contacts ------------------------ Paul Alfille (paul.alfille@gmail.com) OWFS sourceforge site (http://www.owfs.org) ------------------------ 4. License ------------------------ Mostly GPL. Some of the design and device details come from Dallas Semi (Maxim) Public Domain Kit, which has no restrictions beyond not suing them. Most of the actual C code here was written by Paul Alfille (me). I personally release all my contributions as public domain, but cannot assure you that other portions are not GPL-derived.