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

  
 
  

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

NAME
     owcapi - easy C-language 1-wire interface

SYNOPSIS
     libowcapi library to link with your program

   Initialization
     ssize_t OW_init( device name or full parameter string )
     ssize_t OW_init_args( int argc, char ** args )

     The  full	set  of  initialization  options  is  extensive. They correspond
     roughly to the command line options of owfs (1) owhttpd (1) and owftpd (1)

   Get data
     int OW_present( const char * path )
     int OW_get( const char * path, char ** buffer, size_t * buffer_length )
     ssize_t OW_lread( const char * path, unsigned char * buffer,  const  size_t
     size, const off_t offset )

   Set data
     ssize_t  OW_put(  const  char  *  path,  const  char  *  buffer,  size_t  *
     buffer_length )
     ssize_t OW_lwrite( const char * path, const unsigned char *  buffer,  const
     size_t size, const off_t offset )

   Debug
     void OW_set_error_level( const char *param )
     void OW_set_error_print( const char *param )

   Close
     void OW_finish( void )

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_present
     OW_present is used to check presence of a 1-wire device.

     Arguments
	    path is the path to the directory or file (property).

     Returns
	    0 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_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_set_error_level
     OW_set_error_level  sets the debug output to a certain level. 0 is default,
     and higher value gives more output.
     (0=default, 1=err_connect, 2=err_call, 3=err_data, 4=err_detail,  5=err_de-
     bug, 6=err_beyond)

     Arguments
	    params is the level. Should be an integer.

     Returns
	    None

     Sequence
	    One  of  the init functions must be called before setting the level,
	    since init defaults to level 0.

   OW_set_error_print
     OW_set_error_print sets where the debug output should be directed.  0=mixed
     output, 1=syslog, 2=console.

     Arguments
	    params is the level. Should be an integer between 0 and 2.

     Returns
	    None

     Sequence
	    One  of  the init functions must be called before setting the level,
	    since init defaults to 0 (mixed output).

   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 <owcapi.h>
     unsigned char * buf;
     size_t s ;
     OW_init("/dev/ttyS0");
     OW_set_error_print("2");
     OW_set_error_level("6");
     OW_get("/",&buf,&s) ;
     printf("Directory %s0,buf);
     free(buf);
     OW_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			      2004			       OWCAPI(1)

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

home | help