| mraa
    1.9.0
    Low Level Skeleton Library for Communication on GNU/Linux platforms | 
This module allows one to use MRAA's UART support in order to interact with Dallas 1-wire compliant devices on a 1-wire bus. It makes use of the UART for timing purposes. The principle of operation is described here: https://www.maximintegrated.com/en/app-notes/index.mvp/id/214
It is important the you use a UART with CMOS/TTL level voltages (3.3v/5v) RX and TX lines. DO NOT use standard RS232 level voltages, or you are going to have a bad day.
In addition, a diode should be placed across the RX and TX lines like so:
-| U| A| TX—|<–+ R| | T| RX----—o-----—o 1-wire data bus -|
The diode on TX is a 1N4148 (cheap and common), with the cathode connected to TX, and the anode connected to RX and the rest of the 1-wire data line.
Go to the source code of this file.
| Data Structures | |
| struct | _mraa_uart_ow | 
| Functions | |
| mraa_uart_ow_context | mraa_uart_ow_init (int uart) | 
| mraa_uart_ow_context | mraa_uart_ow_init_raw (const char *path) | 
| const char * | mraa_uart_ow_get_dev_path (mraa_uart_ow_context dev) | 
| mraa_result_t | mraa_uart_ow_stop (mraa_uart_ow_context dev) | 
| int | mraa_uart_ow_read_byte (mraa_uart_ow_context dev) | 
| int | mraa_uart_ow_write_byte (mraa_uart_ow_context dev, uint8_t byte) | 
| int | mraa_uart_ow_bit (mraa_uart_ow_context dev, uint8_t bit) | 
| mraa_result_t | mraa_uart_ow_reset (mraa_uart_ow_context dev) | 
| mraa_result_t | mraa_uart_ow_rom_search (mraa_uart_ow_context dev, mraa_boolean_t start, uint8_t *id) | 
| mraa_result_t | mraa_uart_ow_command (mraa_uart_ow_context dev, uint8_t command, uint8_t *id) | 
| uint8_t | mraa_uart_ow_crc8 (uint8_t *buffer, uint16_t length) | 
| Macros | |
| #define | MRAA_UART_OW_ROMCODE_SIZE 8 | 
| Typedefs | |
| typedef struct _mraa_uart_ow * | mraa_uart_ow_context | 
| Enumerations | |
| enum | mraa_uart_ow_rom_cmd_t { MRAA_UART_OW_CMD_READ_ROM = 0x33, MRAA_UART_OW_CMD_MATCH_ROM = 0x55, MRAA_UART_OW_CMD_SKIP_ROM = 0xcc, MRAA_UART_OW_CMD_SEARCH_ROM_ALARM = 0xec, MRAA_UART_OW_CMD_SEARCH_ROM = 0xf0 } | 
| mraa_uart_ow_context mraa_uart_ow_init | ( | int | uart | ) | 
Initialise uart_ow_context, uses UART board mapping
| uart | the index of the uart set to use | 

| mraa_uart_ow_context mraa_uart_ow_init_raw | ( | const char * | path | ) | 
Initialise a raw uart_ow_context. No board setup.
| path | for example "/dev/ttyS0" | 

| const char* mraa_uart_ow_get_dev_path | ( | mraa_uart_ow_context | dev | ) | 
Get char pointer with tty device path within Linux For example. Could point to "/dev/ttyS0"
| dev | uart_ow context | 

| mraa_result_t mraa_uart_ow_stop | ( | mraa_uart_ow_context | dev | ) | 
Destroy a mraa_uart_ow_context
| dev | uart_ow context | 

| int mraa_uart_ow_read_byte | ( | mraa_uart_ow_context | dev | ) | 
Read a byte from the 1-wire bus
| dev | uart_ow context | 

| int mraa_uart_ow_write_byte | ( | mraa_uart_ow_context | dev, | 
| uint8_t | byte | ||
| ) | 
Write a byte to a 1-wire bus
| dev | uart_ow context | 
| byte | the byte to write to the bus | 

| int mraa_uart_ow_bit | ( | mraa_uart_ow_context | dev, | 
| uint8_t | bit | ||
| ) | 
Write a bit to a 1-wire bus and read a bit corresponding to the time slot back. This is possible due to the way we wired the TX and RX together with a diode, forming a loopback.
| dev | uart_ow context | 
| bit | the bit to write to the bus | 

| mraa_result_t mraa_uart_ow_reset | ( | mraa_uart_ow_context | dev | ) | 
Send a reset pulse to the 1-wire bus and test for device presence
| dev | uart_ow context | 

| mraa_result_t mraa_uart_ow_rom_search | ( | mraa_uart_ow_context | dev, | 
| mraa_boolean_t | start, | ||
| uint8_t * | id | ||
| ) | 
Begin a rom code search of the 1-wire bus. This function implements the 1-wire search algorithm. See the uart_ow.c example for an idea on how to use this function to identify all devices present on the bus.
| dev | uart_ow context | 
| start | true to start a new search from scratch, false to continue an existing search | 
| id | the 8-byte rom code id of the current matched device when a device is found | 

| mraa_result_t mraa_uart_ow_command | ( | mraa_uart_ow_context | dev, | 
| uint8_t | command, | ||
| uint8_t * | id | ||
| ) | 
Send a command byte to a device on the 1-wire bus
| dev | uart_ow context | 
| command | the command byte to send | 
| id | the rom code id of the device to receive the command, NULL for all devices on the bus | 

| uint8_t mraa_uart_ow_crc8 | ( | uint8_t * | buffer, | 
| uint16_t | length | ||
| ) | 
Perform a Dallas 1-wire compliant CRC8 computation on a buffer
| buffer | the buffer containing the data | 
| length | the length of the buffer | 

| #define MRAA_UART_OW_ROMCODE_SIZE 8 | 
8 bytes (64 bits) for a device rom code
| typedef struct _mraa_uart_ow * mraa_uart_ow_context | 
for now, we simply use the normal MRAA UART context
UART One Wire ROM related Command bytes

 1.8.11
 1.8.11