8b224ecb15
* Separate ibutton to its own module, add one_wire to f18 * Move onewire cli to a separate app * Add definitions for normal and overdrive timings * Update api definitions * Add rough overdrive timings definition for onewire emulation * Remove one_wire_host_timing.h * Add rough overdrive timings for onewire host * Improve overdrive mode * Working overdrive mode from flipper to flipper * Update thermometer example app * Turn on otg power when running thermometer example app * Implement reset overdrive switching * Always exit out of overdrive mode * Improve overdrive timings * Fix typos * Fix reset behaviour * Use overdrive mode everywhere in DS1996 * Improve comments * Bump API version Co-authored-by: あく <alleteam@gmail.com>
40 lines
1.6 KiB
C
40 lines
1.6 KiB
C
#pragma once
|
|
|
|
#include "../protocol_common_i.h"
|
|
|
|
#include <one_wire/one_wire_host.h>
|
|
#include <one_wire/one_wire_slave.h>
|
|
|
|
#include <flipper_format/flipper_format.h>
|
|
|
|
typedef bool (*iButtonProtocolDallasReadWriteFunc)(OneWireHost*, iButtonProtocolData*);
|
|
typedef void (*iButtonProtocolDallasEmulateFunc)(OneWireSlave*, iButtonProtocolData*);
|
|
typedef bool (*iButtonProtocolDallasSaveFunc)(FlipperFormat*, const iButtonProtocolData*);
|
|
typedef bool (*iButtonProtocolDallasLoadFunc)(FlipperFormat*, uint32_t, iButtonProtocolData*);
|
|
typedef void (*iButtonProtocolDallasRenderDataFunc)(FuriString*, const iButtonProtocolData*);
|
|
typedef bool (*iButtonProtocolDallasIsValidFunc)(const iButtonProtocolData*);
|
|
typedef void (
|
|
*iButtonProtocolDallasGetEditableDataFunc)(iButtonEditableData*, iButtonProtocolData*);
|
|
typedef void (*iButtonProtocolDallasApplyEditsFunc)(iButtonProtocolData*);
|
|
|
|
typedef struct {
|
|
const uint8_t family_code;
|
|
const uint32_t features;
|
|
const size_t data_size;
|
|
const char* manufacturer;
|
|
const char* name;
|
|
|
|
iButtonProtocolDallasReadWriteFunc read;
|
|
iButtonProtocolDallasReadWriteFunc write_blank;
|
|
iButtonProtocolDallasReadWriteFunc write_copy;
|
|
iButtonProtocolDallasEmulateFunc emulate;
|
|
iButtonProtocolDallasSaveFunc save;
|
|
iButtonProtocolDallasLoadFunc load;
|
|
iButtonProtocolDallasRenderDataFunc render_data;
|
|
iButtonProtocolDallasRenderDataFunc render_brief_data;
|
|
iButtonProtocolDallasRenderDataFunc render_error;
|
|
iButtonProtocolDallasIsValidFunc is_valid;
|
|
iButtonProtocolDallasGetEditableDataFunc get_editable_data;
|
|
iButtonProtocolDallasApplyEditsFunc apply_edits;
|
|
} iButtonProtocolDallasBase;
|