|
NAMEownet , (libownet) - easy C-language 1-wire interface to the owserver protocolSYNOPSISlibownet library to link with your programHandleOWNET_HANDLEHandle to each owserver connection InitializationOWNET_HANDLE OWNET_init( const char * owserver_tcp_address_and_port )Associate an owserver (1) tcp/ip address with a handle. Directory listingint 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 )
Get dataint 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 )
int OWNET_present( OWNET_HANDLE owserver_handle ,
const char * onewire_path )
Set dataint 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
)
Closevoid OWNET_close( OWNET_HANDLE owserver_handle )Close the connection to a particular owserver. void OWNET_closeall( void )
void OWNET_finish( void )
Temperature scalevoid OWNET_set_temperature_scale( char temperature_scale )char OWNET_get_temperature_scale( void ) Set and retrieve the temperature scale used for all communications. Device formatvoid 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. FUNCTIONSOW_initOW_init_string offers the full flexibility of the owfs (1) and owhttpd (1) command line.
OW_init_argsOW_init_args offers the full flexibility of the owfs (1) and owhttpd (1) command line.
OW_getOW_get is used to get directory listings and file contents. The results are put in a dynamically allocated buffer.
OW_lreadOW_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.
OW_putOW_put is an easy way to write to 1-wire chips.
OW_lwriteOW_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.
OW_finishOW_finish cleans up the OWFS 1-wire routines, releases devices and memory.
DESCRIPTION1-Wire1-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 designOWFS 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. libowcapilibowcapi (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:
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 ALSOProgramsowfs (1) owhttpd (1) owftpd (1) owserver (1) owdir (1) owread (1) owwrite (1) owpresent (1) owtap (1)Configuration and testingowfs (5) owtap (1) owmon (1)Language bindingsowtcl (3) owperl (3) owcapi (3)ClocksDS1427 (3) DS1904(3) DS1994 (3) DS2404 (3) DS2404S (3) DS2415 (3) DS2417 (3)IDDS2401 (3) DS2411 (3) DS1990A (3)MemoryDS1982 (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)SwitchesDS2405 (3) DS2406 (3) DS2408 (3) DS2409 (3) DS2413 (3) DS28EA00 (3)TemperatureDS1822 (3) DS1825 (3) DS1820 (3) DS18B20 (3) DS18S20 (3) DS1920 (3) DS1921 (3) DS1821 (3) DS28EA00 (3) DS28E04 (3)HumidityDS1922 (3)VoltageDS2450 (3)ResistanceDS2890 (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)CounterDS2423 (3)LCD ScreenLCD (3) DS2408 (3)CryptoDS1977 (3)PressureDS2406 (3) -- TAI8570AVAILABILITYhttp://www.owfs.orgAUTHORPaul Alfille (paul.alfille@gmail.com)
Visit the GSP FreeBSD Man Page Interface. |