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
msg – [in] Optional message parameter to print on failure
c – [in] Condition to check for
-
LWOW_ASSERT0(msg, c)
Assert check function with return
0
It returns
0
if condition check fails- Parameters
msg – [in] Optional message parameter to print on failure
c – [in] Condition to check for
-
LWOW_ARRAYSIZE(x)
Get size of statically declared array.
- Parameters
x – [in] Input array
- Returns
Number of array elements
-
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.
- Param ow
[in] 1-Wire handle
- Param rom_id
[in] Rom address when new device detected. Set to
NULL
when search finished- Param index
[in] Current device index When
rom_id = NULL
, value indicates number of total devices found- Param arg
[in] Custom user argument
- Return
Enums
-
enum lwowr_t
1-Wire result enumeration
Values:
-
enumerator lwowOK = 0x00
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 lwowOK = 0x00
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
ow – [in] OneWire instance
-
lwowr_t lwow_protect(lwow_t *const ow, const uint8_t protect)
Protect 1-wire from concurrent access.
Note
Used only for OS systems
-
lwowr_t lwow_unprotect(lwow_t *const ow, const uint8_t protect)
Unprotect 1-wire from concurrent access.
Note
Used only for OS systems
-
lwowr_t lwow_reset(lwow_t *const ow)
Reset 1-Wire bus and set connected devices to idle state.
Note
This function is thread-safe
-
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.
Note
This function is thread-safe
-
lwowr_t lwow_read_byte_ex(lwow_t *const ow, uint8_t *const br)
Read byte from OW device.
Note
This function is thread-safe
-
lwowr_t lwow_read_bit_ex(lwow_t *const ow, uint8_t *const br)
Read sinle bit from OW device.
Note
This function is thread-safe
-
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
-
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
Note
This function is thread-safe
-
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
-
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
Note
This function is thread-safe
-
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 userNote
This function is thread-safe
- Parameters
ow – [in] 1-Wire handle
cmd – [in] 1-Wire search command
roms_found – [out] Output variable to save number of found devices. Set to
NULL
if not usedfunc – [in] Callback function to call for each device
arg – [in] Custom user argument, used in callback function
- Returns
-
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 userNote
This function is thread-safe
-
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.
- Parameters
ow – [in] 1-Wire handle
cmd – [in] 1-Wire search command
rom_id_arr – [in] Pointer to output array to store found ROM IDs into
rom_len – [in] Length of input ROM array
roms_found – [out] Output variable to save number of found devices. Set to
NULL
if not used
- Returns
-
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.
Note
This function is thread-safe
- Parameters
ow – [in] 1-Wire handle
cmd – [in] 1-Wire search command
rom_id_arr – [in] Pointer to output array to store found ROM IDs into
rom_len – [in] Length of input ROM array
roms_found – [out] Output variable to save number of found devices. Set to
NULL
if not used
- Returns
-
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.
Note
This function is thread-safe
-
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.
Note
This function is thread-safe
-
lwowr_t lwow_skip_rom_raw(lwow_t *const ow)
Skip ROM address and select all devices on the network.
-
lwowr_t lwow_skip_rom(lwow_t *const ow)
Skip ROM address and select all devices on the network.
Note
This function is thread-safe
-
uint8_t lwow_crc(const void *const in, const size_t len)
Calculate CRC-8 of input data.
Note
This function is reentrant
- Parameters
in – [in] Input data
len – [in] Number of bytes
- Returns
Calculated CRC
-
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
- Parameters
ow – [inout] 1-Wire handle
b – [in] Byte to write
- Returns
Received byte over 1-wire protocol
-
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
Note
This function is deprecated. Use lwow_write_byte_ex instead
Note
This function is thread-safe
- Parameters
ow – [inout] 1-Wire handle
b – [in] Byte to write
- Returns
Received byte over 1-wire protocol
-
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
- Parameters
ow – [inout] 1-Wire handle
- Returns
Byte read over 1-Wire
-
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
Note
This function is deprecated. Use lwow_read_byte_ex instead
Note
This function is thread-safe
- Parameters
ow – [inout] 1-Wire handle
- Returns
Byte read over 1-Wire
-
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
- Parameters
ow – [inout] 1-Wire handle
- Returns
Bit value
-
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
Note
This function is deprecated. Use lwow_read_bit_ex instead
Note
This function is thread-safe
- Parameters
ow – [inout] 1-Wire handle
- Returns
Bit value
-
struct lwow_rom_t
- #include <lwow.h>
ROM structure.
Public Members
-
uint8_t rom[8]
8-bytes ROM address
-
uint8_t rom[8]
-
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 rom
-
LWOW_UNUSED(x)