LibDriver IR_REMOTE
Loading...
Searching...
No Matches
driver_ir_remote.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_IR_REMOTE_H
38#define DRIVER_IR_REMOTE_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
62#ifndef IR_REMOTE_MAX_RANGE
63 #define IR_REMOTE_MAX_RANGE 0.20f
64#endif
65
77
81typedef struct ir_remote_s
82{
83 uint8_t status;
84 uint8_t address;
85 uint8_t command;
87
91typedef struct ir_remote_time_s
92{
93 uint64_t s;
94 uint32_t us;
96
105
121
137
141
148
155#define DRIVER_IR_REMOTE_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
156
163#define DRIVER_IR_REMOTE_LINK_TIMESTAMP_READ(HANDLE, FUC) (HANDLE)->timestamp_read = FUC
164
171#define DRIVER_IR_REMOTE_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
172
179#define DRIVER_IR_REMOTE_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
180
187#define DRIVER_IR_REMOTE_LINK_RECEIVE_CALLBACK(HANDLE, FUC) (HANDLE)->receive_callback = FUC
188
192
199
208uint8_t ir_remote_info(ir_remote_info_t *info);
209
221
232uint8_t ir_remote_init(ir_remote_handle_t *handle);
233
243uint8_t ir_remote_deinit(ir_remote_handle_t *handle);
244
248
252
253#ifdef __cplusplus
254}
255#endif
256
257#endif
uint8_t ir_remote_irq_handler(ir_remote_handle_t *handle)
irq handler
uint8_t ir_remote_init(ir_remote_handle_t *handle)
initialize the chip
uint8_t ir_remote_info(ir_remote_info_t *info)
get chip's information
struct ir_remote_info_s ir_remote_info_t
ir_remote information structure definition
struct ir_remote_decode_s ir_remote_decode_t
ir_remote decode structure definition
struct ir_remote_handle_s ir_remote_handle_t
ir_remote handle structure definition
uint8_t ir_remote_deinit(ir_remote_handle_t *handle)
close the chip
ir_remote_status_t
ir_remote status enumeration definition
struct ir_remote_time_s ir_remote_time_t
ir_remote time structure definition
struct ir_remote_s ir_remote_t
ir_remote structure definition
@ IR_REMOTE_STATUS_REPEAT
@ IR_REMOTE_STATUS_OK
@ IR_REMOTE_STATUS_FRAME_INVALID
@ IR_REMOTE_STATUS_CMD_ERR
@ IR_REMOTE_STATUS_ADDR_ERR
ir_remote decode structure definition
ir_remote_time_t t
ir_remote handle structure definition
ir_remote_decode_t decode[128]
void(* delay_ms)(uint32_t ms)
void(* debug_print)(const char *const fmt,...)
uint8_t(* timestamp_read)(ir_remote_time_t *t)
void(* receive_callback)(ir_remote_t *data)
ir_remote_time_t last_time
ir_remote information structure definition
ir_remote structure definition
ir_remote time structure definition