Man page - ownet(3)
Packages contains this manual
Manual
OWNET
NAMESYNOPSIS
Handle
Initialization
Directory listing
Get data
Set data
Close
Temperature scale
Device format
FUNCTIONS
OW_init
OW_init_args
OW_get
OW_lread
OW_put
OW_lwrite
OW_finish
DESCRIPTION
1-Wire
OWFS design
libowcapi
EXAMPLE
SEE ALSO
Programs
Configuration and testing
Language bindings
Clocks
ID
Memory
Switches
Temperature
Humidity
Voltage
Resistance
Multifunction (current, voltage, temperature)
Counter
LCD Screen
Crypto
Pressure
AVAILABILITY
AUTHOR
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)