Select one of the symbols to view example projects that use it.
 
Outline
#include <stdio.h>
#include "driver/gpio.h"
#include "esp_log.h"
#include "iot_button.h"
#include "board.h"
#define TAG
#define BUTTON_IO_NUM
#define BUTTON_ACTIVE_LEVEL
led_state
board_led_operation(uint8_t, uint8_t)
board_led_init()
button_tap_cb(void *)
board_button_init()
board_init()
Files
loading...
SourceVuESP-IDF Framework and Examplesonoff_client samplemain/board.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* board.c - Board-specific hooks */ /* * SPDX-FileCopyrightText: 2017 Intel Corporation * SPDX-FileContributor: 2018-2021 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #include <stdio.h> #include "driver/gpio.h" #include "esp_log.h" #include "iot_button.h" #include "board.h"5 includes #define TAG "BOARD" #define BUTTON_IO_NUM 0 #define BUTTON_ACTIVE_LEVEL 0 extern void example_ble_mesh_send_gen_onoff_set(void); struct _led_state led_state[3] = { { LED_OFF, LED_OFF, LED_R, "red" }, { LED_OFF, LED_OFF, LED_G, "green" }, { LED_OFF, LED_OFF, LED_B, "blue" }, }{...}; void board_led_operation(uint8_t pin, uint8_t onoff) { for (int i = 0; i < ARRAY_SIZE(led_state); i++) { if (led_state[i].pin != pin) { continue; }{...} if (onoff == led_state[i].previous) { ESP_LOGW(TAG, "led %s is already %s", led_state[i].name, (onoff ? "on" : "off")); return; }{...} gpio_set_level(pin, onoff); led_state[i].previous = onoff; return; }{...} ESP_LOGE(TAG, "LED is not found!"); }{ ... } static void board_led_init(void) { for (int i = 0; i < ARRAY_SIZE(led_state); i++) { gpio_reset_pin(led_state[i].pin); gpio_set_direction(led_state[i].pin, GPIO_MODE_OUTPUT); gpio_set_level(led_state[i].pin, LED_OFF); led_state[i].previous = LED_OFF; }{...} }{ ... } static void button_tap_cb(void* arg) { ESP_LOGI(TAG, "tap cb (%s)", (char *)arg); example_ble_mesh_send_gen_onoff_set(); }{ ... } static void board_button_init(void) { button_handle_t btn_handle = iot_button_create(BUTTON_IO_NUM, BUTTON_ACTIVE_LEVEL); if (btn_handle) { iot_button_set_evt_cb(btn_handle, BUTTON_CB_RELEASE, button_tap_cb, "RELEASE"); }{...} }{ ... } void board_init(void) { board_led_init(); board_button_init(); }{ ... }
Details