Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
OWNET(1)		      One-Wire File System			OWNET(1)

NAME
     ownet  , (libownet) - easy C-language 1-wire interface to the owserver pro-
     tocol

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 commu-
     nications.

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 specifica-
	    tion.   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 re-
	    turns a pointer to a buffer containing the	directory  (comma  sepa-
	    rated)   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  loca-
     tion  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-allo-
	    cated) 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 po-
     sitions 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-connec-
     tor 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, temper-
     ature, 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 indi-
     vidually 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  con-
     sistent  interface. The goal is to provide an easy set of tools for a soft-
     ware 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 correct-
     ness 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)

OWFS Manpage			      2008				OWNET(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ownetlib&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help