LwOW¶
-
group
LWOW
Lightweight onewire.
- Note
Functions with
_raw
suffix do no implement locking mechanism when used with operating system.
Defines
-
LWOW_UNUSED
(x)¶ Unused variable macro
-
LWOW_ASSERT
(msg, c)¶ Assert check function.
It returns lwowERRPAR if condition check fails
- Parameters
[in] msg
: Optional message parameter to print on failure[in] c
: Condition to check for
-
LWOW_ASSERT0
(msg, c)¶ Assert check function with return
0
It returns
0
if condition check fails- Parameters
[in] msg
: Optional message parameter to print on failure[in] c
: Condition to check for
-
LWOW_ARRAYSIZE
(x)¶ Get size of statically declared array.
- Return
Number of array elements
- Parameters
[in] x
: Input array
-
LWOW_CMD_RSCRATCHPAD
¶ Read scratchpad command for 1-Wire devices
-
LWOW_CMD_WSCRATCHPAD
¶ Write scratchpad command for 1-Wire devices
-
LWOW_CMD_CPYSCRATCHPAD
¶ Copy scratchpad command for 1-Wire devices
-
LWOW_CMD_RECEEPROM
¶ Read EEPROM command
-
LWOW_CMD_RPWRSUPPLY
¶ Read power supply command
-
LWOW_CMD_SEARCHROM
¶ Search ROM command
-
LWOW_CMD_READROM
¶ Read ROM command
-
LWOW_CMD_MATCHROM
¶ Match ROM command. Select device with specific ROM
-
LWOW_CMD_SKIPROM
¶ Skip ROM, select all devices
Typedefs
-
typedef lwowr_t (*
lwow_search_cb_fn
)(lwow_t *const ow, const lwow_rom_t *const rom_id, size_t index, void *arg)¶ Search callback function implementation.
- Return
- Parameters
[in] ow
: 1-Wire handle[in] rom_id
: Rom address when new device detected. Set toNULL
when search finished[in] index
: Current device index Whenrom_id = NULL
, value indicates number of total devices found[in] arg
: Custom user argument
Enums
-
enum
lwowr_t
¶ 1-Wire result enumeration
Values:
-
enumerator
lwowOK
¶ Device returned OK
-
enumerator
lwowERRPRESENCE
¶ Presence was not successful
-
enumerator
lwowERRNODEV
¶ No device connected, maybe device removed during scan?
-
enumerator
lwowERRTXRX
¶ Error while exchanging data
-
enumerator
lwowERRBAUD
¶ Error setting baudrate
-
enumerator
lwowERRPAR
¶ Parameter error
-
enumerator
lwowERR
¶ General-Purpose error
-
enumerator
Functions
-
lwowr_t
lwow_init
(lwow_t *const ow, const lwow_ll_drv_t *const ll_drv, void *arg)¶ Initialize OneWire instance.
-
void
lwow_deinit
(lwow_t *const ow)¶ Deinitialize OneWire instance.
- Parameters
[in] ow
: OneWire instance
-
lwowr_t
lwow_protect
(lwow_t *const ow, const uint8_t protect)¶ Protect 1-wire from concurrent access.
-
lwowr_t
lwow_unprotect
(lwow_t *const ow, const uint8_t protect)¶ Unprotect 1-wire from concurrent access.
-
lwowr_t
lwow_write_byte_ex_raw
(lwow_t *const ow, const uint8_t btw, uint8_t *const br)¶ Write byte over OW and read its response.
-
lwowr_t
lwow_write_byte_ex
(lwow_t *const ow, const uint8_t btw, uint8_t *const br)¶ Write byte over OW and read its response.
-
lwowr_t
lwow_search_raw
(lwow_t *const ow, lwow_rom_t *const rom_id)¶ Search for devices on 1-wire bus.
- Note
To reset search and to start over, use lwow_search_reset function
- Return
- Parameters
[inout] ow
: 1-Wire handle[out] rom_id
: Pointer to ROM structure to save ROM
-
lwowr_t
lwow_search
(lwow_t *const ow, lwow_rom_t *const rom_id)¶ Search for devices on 1-wire bus.
- Note
To reset search and to start over, use lwow_search_reset function
- Return
- Note
This function is thread-safe
- Parameters
[inout] ow
: 1-Wire handle[out] rom_id
: Pointer to ROM structure to save ROM
-
lwowr_t
lwow_search_with_command_raw
(lwow_t *const ow, const uint8_t cmd, lwow_rom_t *const rom_id)¶ Search for devices on 1-wire bus with custom search command.
- Note
To reset search and to start over, use lwow_search_reset function
- Return
- Parameters
[inout] ow
: 1-Wire handle[in] cmd
: command to use for search operation[out] rom_id
: Pointer to ROM structure to store address
-
lwowr_t
lwow_search_with_command
(lwow_t *const ow, const uint8_t cmd, lwow_rom_t *const rom_id)¶ Search for devices on 1-wire bus with custom search command.
- Note
To reset search and to start over, use lwow_search_reset function
- Return
- Note
This function is thread-safe
- Parameters
[inout] ow
: 1-Wire handle[in] cmd
: command to use for search operation[out] rom_id
: Pointer to ROM structure to store address
-
lwowr_t
lwow_search_with_command_callback
(lwow_t *const ow, const uint8_t cmd, size_t *const roms_found, const lwow_search_cb_fn func, void *const arg)¶ Search devices on 1-wire network by using callback function and custom search command.
When new device is detected, callback function
func
is called to notify user- Return
- Note
This function is thread-safe
- Parameters
[in] ow
: 1-Wire handle[in] cmd
: 1-Wire search command[out] roms_found
: Output variable to save number of found devices. Set toNULL
if not used[in] func
: Callback function to call for each device[in] arg
: Custom user argument, used in callback function
-
lwowr_t
lwow_search_with_callback
(lwow_t *const ow, size_t *const roms_found, const lwow_search_cb_fn func, void *const arg)¶ Search devices on 1-wire network by using callback function and
SEARCH_ROM
1-Wire command.When new device is detected, callback function
func
is called to notify user- Return
- Note
This function is thread-safe
- Parameters
[in] ow
: 1-Wire handle[out] roms_found
: Output variable to save number of found devices. Set toNULL
if not used[in] func
: Callback function to call for each device[in] arg
: Custom user argument, used in callback function
-
lwowr_t
lwow_search_devices_with_command_raw
(lwow_t *const ow, const uint8_t cmd, lwow_rom_t *const rom_id_arr, const size_t rom_len, size_t *const roms_found)¶ Search for devices on 1-Wire network with command and store ROM IDs to input array.
- Return
- Parameters
[in] ow
: 1-Wire handle[in] cmd
: 1-Wire search command[in] rom_id_arr
: Pointer to output array to store found ROM IDs into[in] rom_len
: Length of input ROM array[out] roms_found
: Output variable to save number of found devices. Set toNULL
if not used
-
lwowr_t
lwow_search_devices_with_command
(lwow_t *const ow, const uint8_t cmd, lwow_rom_t *const rom_id_arr, const size_t rom_len, size_t *const roms_found)¶ Search for devices on 1-Wire network with command and store ROM IDs to input array.
- Return
- Note
This function is thread-safe
- Parameters
[in] ow
: 1-Wire handle[in] cmd
: 1-Wire search command[in] rom_id_arr
: Pointer to output array to store found ROM IDs into[in] rom_len
: Length of input ROM array[out] roms_found
: Output variable to save number of found devices. Set toNULL
if not used
-
lwowr_t
lwow_search_devices_raw
(lwow_t *const ow, lwow_rom_t *const rom_id_arr, const size_t rom_len, size_t *const roms_found)¶ Search for devices on 1-Wire network with default command and store ROM IDs to input array.
-
lwowr_t
lwow_search_devices
(lwow_t *const ow, lwow_rom_t *const rom_id_arr, const size_t rom_len, size_t *const roms_found)¶ Search for devices on 1-Wire network with default command and store ROM IDs to input array.
- Return
- Note
This function is thread-safe
- Parameters
[in] ow
: 1-Wire handle[in] rom_id_arr
: Pointer to output array to store found ROM IDs into[in] rom_len
: Length of input ROM array[out] roms_found
: Output variable to save number of found devices. Set toNULL
if not used
-
lwowr_t
lwow_match_rom_raw
(lwow_t *const ow, const lwow_rom_t *const rom_id)¶ Select device on 1-wire network with exact ROM number.
-
lwowr_t
lwow_match_rom
(lwow_t *const ow, const lwow_rom_t *const rom_id)¶ Select device on 1-wire network with exact ROM number.
-
lwowr_t
lwow_skip_rom_raw
(lwow_t *const ow)¶ Skip ROM address and select all devices on the network.
-
uint8_t
lwow_crc
(const void *const in, const size_t len)¶ Calculate CRC-8 of input data.
- Return
Calculated CRC
- Note
This function is reentrant
- Parameters
[in] in
: Input data[in] len
: Number of bytes
-
uint8_t
lwow_write_byte_raw
(lwow_t *const ow, const uint8_t b)¶ Write byte over 1-wire protocol.
- Deprecated:
This function is deprecated. Use lwow_write_byte_ex_raw instead
- Note
This function is deprecated. Use lwow_write_byte_ex_raw instead
- Return
Received byte over 1-wire protocol
- Parameters
[inout] ow
: 1-Wire handle[in] b
: Byte to write
-
uint8_t
lwow_write_byte
(lwow_t *const ow, const uint8_t b)¶ Write byte over 1-wire protocol.
- Deprecated:
This function is deprecated. Use lwow_write_byte_ex_raw instead
- Deprecated:
This function is deprecated. Use lwow_write_byte_ex instead
- Note
This function is deprecated. Use lwow_write_byte_ex_raw instead
- Return
Received byte over 1-wire protocol
- Note
This function is deprecated. Use lwow_write_byte_ex instead
- Note
This function is thread-safe
- Parameters
[inout] ow
: 1-Wire handle[in] b
: Byte to write
-
uint8_t
lwow_read_byte_raw
(lwow_t *const ow)¶ Read next byte on 1-Wire.
- Deprecated:
This function is deprecated. Use lwow_read_byte_ex_raw instead
- Note
This function is deprecated. Use lwow_read_byte_ex_raw instead
- Return
Byte read over 1-Wire
- Parameters
[inout] ow
: 1-Wire handle
-
uint8_t
lwow_read_byte
(lwow_t *const ow)¶ Read next byte on 1-Wire.
- Deprecated:
This function is deprecated. Use lwow_read_byte_ex_raw instead
- Deprecated:
This function is deprecated. Use lwow_read_byte_ex instead
- Note
This function is deprecated. Use lwow_read_byte_ex_raw instead
- Return
Byte read over 1-Wire
- Note
This function is deprecated. Use lwow_read_byte_ex instead
- Note
This function is thread-safe
- Parameters
[inout] ow
: 1-Wire handle
-
uint8_t
lwow_read_bit_raw
(lwow_t *const ow)¶ Read single bit on 1-Wire network.
- Deprecated:
This function is deprecated. Use lwow_read_bit_ex_raw instead
- Note
This function is deprecated. Use lwow_read_bit_ex_raw instead
- Return
Bit value
- Parameters
[inout] ow
: 1-Wire handle
-
uint8_t
lwow_read_bit
(lwow_t *const ow)¶ Read single bit on 1-Wire network.
- Deprecated:
This function is deprecated. Use lwow_read_bit_ex_raw instead
- Deprecated:
This function is deprecated. Use lwow_read_bit_ex instead
- Note
This function is deprecated. Use lwow_read_bit_ex_raw instead
- Return
Bit value
- Note
This function is deprecated. Use lwow_read_bit_ex instead
- Note
This function is thread-safe
- Parameters
[inout] ow
: 1-Wire handle
-
struct
lwow_rom_t
¶ - #include <lwow.h>
ROM structure.
Public Members
-
uint8_t
rom
[8]¶ 8-bytes ROM address
-
uint8_t
-
struct
lwow_t
¶ - #include <lwow.h>
1-Wire structure
Public Members
-
lwow_rom_t
rom
¶ ROM address of last device found. When searching for new devices, we always need last found address, to be able to decide which way to go next time during scan.
-
uint8_t
disrepancy
¶ Disrepancy value on last search
-
void *
arg
¶ User custom argument
-
const lwow_ll_drv_t *
ll_drv
¶ Low-level functions driver
-
LWOW_CFG_OS_MUTEX_HANDLE
mutex
¶ Mutex handle
-
lwow_rom_t