Provided by: libownet-dev_3.2p3+dfsg1-5build1_amd64 bug

NAME

       ownet , (libownet) - easy C-language 1-wire interface to the owserver protocol

SYNOPSIS

       libownet library to link with your program

   Handle
       OWNET_HANDLE
       Handle to each owserver connection

   Initialization
       OWNET_HANDLE OWNET_init( const char * owserver_tcp_address_and_port )
       Associate an owserver (1) tcp/ip address with a handle.

   Directory listing
       int  OWNET_dirlist(  OWNET_HANDLE  owserver_handle  ,  const char * onewire_path , char **
       comma_separated_list )
       Create a comma-separated list of directory elements.

       int OWNET_dirprocess( OWNET_HANDLE owserver_handle , const char * onewire_path ,  void  (*
       dirfunc ) (void *, const char *), void * passed_on_value )
       void dirfunc ( void * passed_on_value , const char * directory_element )
       Apply function dirfunc to each directory element, along with an arbitrary passed_on_value.

   Get data
       int  OWNET_read(  OWNET_HANDLE owserver_handle , const char * onewire_path , const char **
       return_string )
       Read a value (of specified size) from a 1-wire device.

       int OWNET_lread( OWNET_HANDLE owserver_handle , const char * onewire_path , const char  **
       return_string , size_t size , off_t offset )
       Read a value (of specified size and offset) from a 1-wire device.

       int OWNET_present( OWNET_HANDLE owserver_handle , const char * onewire_path )
       Check if a 1-wire device is present.

   Set data
       int  OWNET_put(  OWNET_HANDLE  owserver_handle  , const char * onewire_path , const char *
       value_string , size_t size )
       Write a value (of specified size) to a 1-wire device.

       int OWNET_lwrite( OWNET_HANDLE owserver_handle , const char * onewire_path , const char  *
       value_string , size_t size , off_t offset )
       Write a value (of specified size and offset) to a 1-wire device.

   Close
       void OWNET_close( OWNET_HANDLE owserver_handle )
       Close the connection to a particular owserver.

       void OWNET_closeall( void )
       Close all open owserver connections.

       void OWNET_finish( void )
       Close all open owserver connections and free all memory.

   Temperature scale
       void OWNET_set_temperature_scale( char temperature_scale )
       char OWNET_get_temperature_scale( void )
       Set and retrieve the temperature scale used for all communications.

   Device format
       void OWNET_set_device_format( const char * device_format )
       const char * OWNET_get_device_format( void )
       Set and retrieve the 1-wire device serial number format used for all communications.

FUNCTIONS

   OW_init
       OW_init_string offers the full flexibility of the owfs (1) and owhttpd (1) command line.

       Arguments
              Can  be  as  simple as jus the device name, a full parameter specification.  One or
              more device names (includes tcp, serial, usb...) and  command  line  switches.  See
              owfs (1) for full syntax.

       Returns
              0  for  success.  -1 on error and errno will be set.  OW_finish does not need to be
              called if OW_init fails.

       Sequence
              One of the  init  functions  must  be  called  before  accessing  the  1-wire  bus.
              OW_finish is optional.

   OW_init_args
       OW_init_args offers the full flexibility of the owfs (1) and owhttpd (1) command line.

       Arguments
              One  or more device names (includes tcp, serial, usb...) and command line switches.
              See owfs (1) for full syntax. Unlike OW_init_string the arguments are in  argv/argc
              format.

       Returns
              0  for  success.  -1 on error and errno will be set.  OW_finish does not need to be
              called if OW_init fails.

       Sequence
              One of the  init  functions  must  be  called  before  accessing  the  1-wire  bus.
              OW_finish is optional.

   OW_get
       OW_get  is  used  to  get  directory  listings and file contents. The results are put in a
       dynamically allocated buffer.

       Arguments
              path is the path to the directory or file (property).  *buffer returns a pointer to
              a  buffer  containing  the  directory  (comma  separated)  or value.  buffer_length
              returns the length of the value/string in buffer

       Returns
              number of bytes on success. -1 on error (and errno is set).

       Sequence
              One of the  init  functions  must  be  called  before  accessing  the  1-wire  bus.
              OW_finish is optional.

       Important note
              buffer  is  allocated  ( with malloc ) by OW_get but must be freed in your program.
              See malloc (3) and free (3)

   OW_lread
       OW_lread is used to read 1-wire memory chips. Think of it as a combination  of  lseek  and
       read  It allows random-access to the memory, specifying location and length. Unlike OW_get
       directories cannot be obtained and the buffer must be pre-allocated rather than  allocated
       by the routine.  buffer must be at least size length.

       Arguments
              path is the path to the file (property).  buffer is the (pre-allocated) memory area
              where the value will be placed.  size is the length of bytes requested.  offset  is
              the position in file to start reading.

       Returns
              number of bytes on success. -1 on error (and errno is set).

       Sequence
              One  of  the  init  functions  must  be  called  before  accessing  the 1-wire bus.
              OW_finish is optional.

   OW_put
       OW_put is an easy way to write to 1-wire chips.

       Arguments
              path is the path to the file (property).   buffer  is  the  value  to  be  written.
              buffer_length  is  the  length  of  the  value  buffer.  Returns number of bytes on
              success. -1 on error (and errno is set).

       Sequence
              One of the  init  functions  must  be  called  before  accessing  the  1-wire  bus.
              OW_finish is optional.

   OW_lwrite
       OW_lwrite  is  the  companion  of  OW_lread.   It allows writing to arbitrary positions in
       1-wire memory.  Think of it as a combination of lseek and write.  buffer must be at  least
       size length.

       Arguments
              path  is  the path to the file (property).  buffer is the data to be written.  size
              is the length of bytes to be written.  offset is the  position  in  file  to  start
              writing.

       Returns
              number of bytes on success. -1 on error (and errno is set).

       Sequence
              One  of  the  init  functions  must  be  called  before  accessing  the 1-wire bus.
              OW_finish is optional.

   OW_finish
       OW_finish cleans up the OWFS 1-wire routines, releases devices and memory.

       Arguments
              None.

       Returns
              None

       Sequence
              OW_finish is optional since cleanup is automatic on program exit.

DESCRIPTION

   1-Wire
       1-wire is a wiring protocol and series of devices  designed  and  manufactured  by  Dallas
       Semiconductor,  Inc.  The bus is a low-power low-speed low-connector scheme where the data
       line can also provide power.

       Each device is uniquely and unalterably numbered during  manufacture.  There  are  a  wide
       variety  of  devices,  including memory, sensors (humidity, temperature, voltage, contact,
       current), switches, timers and data  loggers.  More  complex  devices  (like  thermocouple
       sensors)  can  be  built with these basic devices. There are also 1-wire devices that have
       encryption included.

       The 1-wire scheme uses a single bus master and multiple slaves on the same wire.  The  bus
       master  initiates  all  communication.  The  slaves  can  be  individually  discovered and
       addressed using their unique ID.

       Bus masters come in a variety of configurations including serial, parallel,  i2c,  network
       or USB adapters.

   OWFS design
       OWFS  is  a  suite of programs that designed to make the 1-wire bus and its devices easily
       accessible. The underlying principle is to create a virtual filesystem, with the unique ID
       being the directory, and the individual properties of the device are represented as simple
       files that can be read and written.

       Details of the individual slave or master design are hidden behind a consistent interface.
       The  goal  is to provide an easy set of tools for a software designer to create monitoring
       or control applications. There are some performance enhancements  in  the  implementation,
       including  data  caching,  parallel  access  to  bus  masters,  and  aggregation of device
       communication.  Still  the  fundamental  goal  has  been  ease  of  use,  flexibility  and
       correctness rather than speed.

   libowcapi
       libowcapi (1) is an encapsulation of the full libow library for C programs.

       libowcapi  (1)  allows  a  C  program  to  use  OWFS principles (consistent naming scheme,
       multiple adapters, devices, and compatibility)  directly  from  a  C  program.  There  are
       analogous modules for other programming languages:

       C      libowcapi

       perl   owperl

       php    owphp

       python owpython

       tcl    owtcl

EXAMPLE

       /* Simple directory listing -- no error checking */
       #include <ownetapi.h>
       char * buf;
       size_t s ;
       OWNET_init("localhost:4304");
       OWNET_dirlist("/",&buf,&s) ;
       printf("Directory %s0,buf);
       free(buf);
       OWNET_finish() ;

SEE ALSO

   Programs
       owfs  (1)  owhttpd  (1) owftpd (1) owserver (1) owdir (1) owread (1) owwrite (1) owpresent
       (1) owtap (1)

   Configuration and testing
       owfs (5) owtap (1) owmon (1)

   Language bindings
       owtcl (3) owperl (3) owcapi (3)

   Clocks
       DS1427 (3) DS1904(3) DS1994 (3) DS2404 (3) DS2404S (3) DS2415 (3) DS2417 (3)

   ID
       DS2401 (3) DS2411 (3) DS1990A (3)

   Memory
       DS1982 (3) DS1985 (3) DS1986 (3) DS1991 (3) DS1992 (3) DS1993 (3) DS1995  (3)  DS1996  (3)
       DS2430A (3) DS2431 (3) DS2433 (3) DS2502 (3) DS2506 (3) DS28E04 (3) DS28EC20 (3)

   Switches
       DS2405 (3) DS2406 (3) DS2408 (3) DS2409 (3) DS2413 (3) DS28EA00 (3)

   Temperature
       DS1822  (3) DS1825 (3) DS1820 (3) DS18B20 (3) DS18S20 (3) DS1920 (3) DS1921 (3) DS1821 (3)
       DS28EA00 (3) DS28E04 (3)

   Humidity
       DS1922 (3)

   Voltage
       DS2450 (3)

   Resistance
       DS2890 (3)

   Multifunction (current, voltage, temperature)
       DS2436 (3) DS2437 (3) DS2438 (3) DS2751 (3) DS2755 (3) DS2756 (3) DS2760  (3)  DS2770  (3)
       DS2780 (3) DS2781 (3) DS2788 (3) DS2784 (3)

   Counter
       DS2423 (3)

   LCD Screen
       LCD (3) DS2408 (3)

   Crypto
       DS1977 (3)

   Pressure
       DS2406 (3) -- TAI8570

AVAILABILITY

       http://www.owfs.org

AUTHOR

       Paul Alfille (paul.alfille@gmail.com)