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

FreeBSD Manual Pages

  
 
  

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	speci-
	      fication.	  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 com-
	      mand  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
	      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 combina-
       tion of lseek and read It allows	random-access to the memory,  specify-
       ing  location  and length. Unlike OW_get	directories cannot be obtained
       and the buffer must be pre-allocated rather than	allocated by the  rou-
       tine.  buffer must be at	least size length.

       Arguments
	      path is the path to the file (property).	buffer is the (pre-al-
	      located)	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_set_error_level
       OW_set_error_level  sets	 the debug output to a certain level. 0	is de-
       fault, and higher value gives more output.
       (0=default,  1=err_connect,   2=err_call,   3=err_data,	 4=err_detail,
       5=err_debug, 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 mem-
       ory.

       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 manufac-
       tured  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 (humid-
       ity, 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 en-
       cryption	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,  par-
       allel, 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 in-
       dividual	 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 com-
       munication. Still the fundamental goal has been ease of use,  flexibil-
       ity and correctness rather than speed.

   libowcapi
       libowcapi  (1) is an encapsulation of the full libow library for	C pro-
       grams.

       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.0>

home | help