Skip to content

Commit 1500989

Browse files
loop233laride
authored andcommitted
fix: fix format error
1 parent 862cfcb commit 1500989

File tree

9 files changed

+64
-41
lines changed

9 files changed

+64
-41
lines changed

components/bluetooth/ble_adv/bthome/bthome_v2.c

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,30 @@ static uint8_t get_data_length(uint8_t object_id)
111111
static bthome_reports_t *bthome_parse_payload(uint8_t *buffer, uint8_t len)
112112
{
113113
bthome_reports_t* reports = calloc(1, sizeof(bthome_reports_t));
114+
if (reports == NULL) {
115+
ESP_LOGE(TAG, "calloc bthome_reports_t failed");
116+
return NULL;
117+
}
114118
uint16_t num_report = 0;
115119
int i = 0;
116120
while (i < len) {
121+
122+
if (reports->num_reports >= BTHOME_REPORTS_MAX) {
123+
ESP_LOGE(TAG, "bthome_reports_t overflow");
124+
bthome_free_reports(reports);
125+
return NULL;
126+
}
127+
117128
if ((buffer[i] >= BTHOME_BIN_SENSOR_ID_GENERIC && buffer[i] <= BTHOME_BIN_SENSOR_ID_OPENING) ||
118129
(buffer[i] >= BTHOME_BIN_SENSOR_ID_BATTERY && buffer[i] <= BTHOME_BIN_SENSOR_ID_WINDOW)) {
119130
ESP_LOGD(TAG, "bin_sensor id %d val %d\n", buffer[i], buffer[i + 1]);
120131
reports->report[num_report].id = buffer[i];
121132
reports->report[num_report].len = 1;
122133
reports->report[num_report].data = calloc(1, sizeof(uint8_t) * reports->report[num_report].len);
134+
if (reports->report[num_report].data == NULL) {
135+
bthome_free_reports(reports);
136+
return NULL;
137+
}
123138
reports->report[num_report].data[0] = buffer[i + 1];
124139
reports->num_reports = ++num_report;
125140
i = i + 2;
@@ -128,15 +143,22 @@ static bthome_reports_t *bthome_parse_payload(uint8_t *buffer, uint8_t len)
128143
reports->report[num_report].id = buffer[i];
129144
reports->report[num_report].len = 1;
130145
reports->report[num_report].data = calloc(1, sizeof(uint8_t) * reports->report[num_report].len);
146+
if (reports->report[num_report].data == NULL) {
147+
bthome_free_reports(reports);
148+
return NULL;
149+
}
131150
reports->report[num_report].data[0] = buffer[i + 1];
132151
reports->num_reports = ++num_report;
133152
i = i + 2;
134-
135153
} else if (buffer[i] == BTHOME_EVENT_ID_DIMMER) {
136154
ESP_LOGD(TAG, "event id %d val %d\n", buffer[i], buffer[i + 1]);
137155
reports->report[num_report].id = buffer[i];
138156
reports->report[num_report].len = 2;
139157
reports->report[num_report].data = calloc(1, sizeof(uint8_t) * reports->report[num_report].len);
158+
if (reports->report[num_report].data == NULL) {
159+
bthome_free_reports(reports);
160+
return NULL;
161+
}
140162
reports->report[num_report].data[0] = buffer[i + 1];
141163
reports->report[num_report].data[1] = buffer[i + 2];
142164
reports->num_reports = ++num_report;
@@ -146,6 +168,10 @@ static bthome_reports_t *bthome_parse_payload(uint8_t *buffer, uint8_t len)
146168
reports->report[num_report].id = buffer[i];
147169
reports->report[num_report].len = len;
148170
reports->report[num_report].data = calloc(1, sizeof(uint8_t) * reports->report[num_report].len);
171+
if (reports->report[num_report].data == NULL) {
172+
bthome_free_reports(reports);
173+
return NULL;
174+
}
149175
memcpy(reports->report[num_report].data, buffer + i + 2, len);
150176
reports->num_reports = ++num_report;
151177
ESP_LOGD(TAG, "sensor id %d len %d\n", buffer[i], len);
@@ -157,6 +183,10 @@ static bthome_reports_t *bthome_parse_payload(uint8_t *buffer, uint8_t len)
157183
reports->report[num_report].id = buffer[i];
158184
reports->report[num_report].len = len;
159185
reports->report[num_report].data = calloc(1, sizeof(uint8_t) * reports->report[num_report].len);
186+
if (reports->report[num_report].data == NULL) {
187+
bthome_free_reports(reports);
188+
return NULL;
189+
}
160190
memcpy(reports->report[num_report].data, buffer + i + 1, len);
161191
ESP_LOGD(TAG, "sensor id %d len %d\n", buffer[i], len);
162192
reports->num_reports = ++num_report;
@@ -220,13 +250,13 @@ static bthome_reports_t *bthome_parse_service_data(bthome_handle_t handle, uint8
220250
ESP_LOGD(TAG, "trigger_based_flag: %d\n", info.bit.trigger_based_flag);
221251

222252
if (!info.bit.encryption_flag) {
223-
ESP_LOG_BUFFER_HEX("raw payload", data + 3, len - 3);
253+
ESP_LOG_BUFFER_HEX_LEVEL("raw payload", data + 3, len - 3, ESP_LOG_DEBUG);
224254
return bthome_parse_payload(data + 3, len - 3);
225255
} else {
226256
uint8_t payload_len = 0;
227257
uint8_t payload_dec[31];
228258
if (bthome_decrypt_payload(bthome, data, len, payload_dec, &payload_len) == 0) {
229-
ESP_LOG_BUFFER_HEX("payload_dec", payload_dec, payload_len);
259+
ESP_LOG_BUFFER_HEX_LEVEL("payload_dec", payload_dec, payload_len, ESP_LOG_DEBUG);
230260
return bthome_parse_payload(payload_dec, payload_len);
231261
} else {
232262
ESP_LOGE(TAG, "decrypt failed\n");
@@ -240,7 +270,7 @@ bthome_reports_t *bthome_parse_adv_data(bthome_handle_t handle, uint8_t *adv, ui
240270
{
241271
bthome_t *bthome = (bthome_t *)handle;
242272
size_t index = 0;
243-
// ESP_LOG_BUFFER_HEX("adv", adv, len);
273+
244274
while (index < len) {
245275
uint8_t length = adv[index];
246276
if (length == 0) {
@@ -305,6 +335,10 @@ static esp_err_t bthome_encrypt_payload(bthome_handle_t handle, const uint16_t *
305335
memcpy(nonce_p, &bthome->counter, BTHOME_COUNTER_LEN);
306336
nonce_p += BTHOME_COUNTER_LEN;
307337
int ret = mbedtls_ccm_encrypt_and_tag(&bthome->aes_ctx, data_len, nonce, BTHOME_NONCE_LEN, NULL, 0, raw_data, enc_data, tag, 4);
338+
if (ret != 0) {
339+
ESP_LOGE(TAG, "mbedtls_ccm_encrypt_and_tag failed, ret %d", ret);
340+
return ESP_FAIL;
341+
}
308342

309343
ESP_LOGD(TAG, "raw_data:");
310344
for (int i = 0; i < data_len; i++) {
@@ -427,7 +461,7 @@ esp_err_t bthome_load_params(bthome_handle_t handle)
427461
uint8_t counter[4];
428462
bthome->callbacks.load(handle, BTHOME_COUNTER_KEY, counter, sizeof(counter));
429463
memcpy(&bthome->counter, counter, sizeof(bthome->counter));
430-
ESP_LOGD(TAG, "load counter %d\n", bthome->counter);
464+
ESP_LOGD(TAG, "load counter %lu\n", bthome->counter);
431465
return ESP_OK;
432466
}
433467

components/bluetooth/ble_adv/bthome/include/bthome_v2.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ typedef struct {
148148
/**
149149
* @brief BTHome store function
150150
*/
151-
typedef void (*bthome_store_func_t)(bthome_handle_t handle, const char *key, uint8_t *data, uint8_t len);
151+
typedef void (*bthome_store_func_t)(bthome_handle_t handle, const char *key, const uint8_t *data, uint8_t len);
152152

153153
/**
154154
* @brief BTHome load function

components/bluetooth/ble_hci/test_apps/main/ble_hci_test.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ TEST_CASE("ble_hci_test", "[ble hci scan]")
8585
ble_hci_set_scan_enable(true, false);
8686

8787
vTaskDelay(5000 / portTICK_PERIOD_MS);
88+
8889
ble_hci_set_scan_enable(false, false);
8990
ble_hci_deinit();
9091
}

examples/bluetooth/ble_adv/bthome/bulb/main/app_main.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,13 @@ static void configure_ble_scan(void)
8787

8888
ble_hci_set_scan_param(&scan_param);
8989
ble_hci_set_register_scan_callback(&ble_hci_scan_cb);
90-
ble_hci_add_to_accept_list(peer_mac, BLE_ADDR_TYPE_RANDOM);
90+
ble_hci_addr_t peer_mac_addr = {0};
91+
memcpy((uint8_t *)peer_mac_addr, peer_mac, BLE_HCI_ADDR_LEN);
92+
ble_hci_add_to_accept_list(peer_mac_addr, BLE_ADDR_TYPE_RANDOM);
9193
ble_hci_set_scan_enable(true, true);
9294
}
9395

94-
static void settings_store(bthome_handle_t handle, const char *key, uint8_t *data, uint8_t len)
96+
static void settings_store(bthome_handle_t handle, const char *key, const uint8_t *data, uint8_t len)
9597
{
9698
nvs_handle_t nvs_handle;
9799
esp_err_t err = nvs_open("storage", NVS_READWRITE, &nvs_handle);

examples/bluetooth/ble_adv/bthome/bulb/main/idf_component.yml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,8 @@ dependencies:
33
espressif/led_strip: "^2.5.4"
44
## Required IDF version
55
idf:
6-
version: ">=4.1.0"
7-
# # Put list of dependencies here
8-
# # For components maintained by Espressif:
9-
# component: "~1.0.0"
10-
# # For 3rd party components:
11-
# username/component: ">=1.0.0,<2.0.0"
12-
# username2/component2:
13-
# version: "~1.0.0"
14-
# # For transient dependencies `public` flag can be set.
15-
# # `public` flag doesn't have an effect dependencies of the `main` component.
16-
# # All dependencies of `main` are public by default.
17-
# public: true
6+
version: ">=5.0"
7+
bthome:
8+
override_path: "../../../../../components/bluetooth/ble_adv/bthome"
9+
ble_hci:
10+
override_path: "../../../../../components/bluetooth/ble_hci"

examples/bluetooth/ble_adv/bthome/dimmer/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Software functionality:
99

1010
### Hardware Requirements:
1111

12-
Refer to the ESP-Dimmer hardware design, open-source address:
12+
Refer to the ESP-Dimmer hardware design, open-source address: https://oshwhub.com/esp-college/esp32-h2-switch
1313

1414
### Compilation and Flashing
1515

examples/bluetooth/ble_adv/bthome/dimmer/README_CN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* 优化了低功耗配置项。
88

99
### 硬件需求:
10-
参考 ESP-Dimmer 硬件设计,开源地址:
10+
参考 ESP-Dimmer 硬件设计,开源地址: https://oshwhub.com/esp-college/esp32-h2-switch
1111

1212
### 编译和烧写
1313

examples/bluetooth/ble_adv/bthome/dimmer/main/app_main.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@ static void dimmer_task(void *arg)
8686
uint8_t advertisement_data[31] = {0};
8787
uint8_t payload_length = 0;
8888
uint8_t payload_data[31];
89-
uint16_t advertisement_count = 0;
90-
91-
ble_hci_set_random_address(local_mac);
89+
ble_hci_addr_t local_mac_addr = {0};
90+
memcpy((uint8_t *)local_mac_addr, local_mac, BLE_HCI_ADDR_LEN);
91+
ble_hci_set_random_address(local_mac_addr);
9292

9393
ble_hci_adv_param_t adv_param = {
9494
.adv_int_min = 0x50,
@@ -194,7 +194,7 @@ static void knob_init(void)
194194
iot_knob_register_cb(s_dimmer->knob, KNOB_RIGHT, knob_event_cb, NULL);
195195
}
196196

197-
static void button_init(void)
197+
static esp_err_t button_init(void)
198198
{
199199
button_config_t btn_cfg = {
200200
.type = BUTTON_TYPE_GPIO,
@@ -209,10 +209,10 @@ static void button_init(void)
209209
s_dimmer->btn = iot_button_create(&btn_cfg);
210210
assert(s_dimmer->btn);
211211
esp_err_t err = iot_button_register_cb(s_dimmer->btn, BUTTON_PRESS_DOWN, button_event_cb, (void *)BUTTON_SINGLE_CLICK);
212-
212+
return err;
213213
}
214214

215-
static void settings_store(bthome_handle_t handle, const char *key, uint8_t *data, uint8_t len)
215+
static void settings_store(bthome_handle_t handle, const char *key, const uint8_t *data, uint8_t len)
216216
{
217217
nvs_handle_t nvs_handle;
218218
esp_err_t err = nvs_open("storage", NVS_READWRITE, &nvs_handle);
@@ -294,7 +294,7 @@ void app_main(void)
294294
};
295295
bthome_register_callbacks(s_dimmer->bthome, &callbacks);
296296
bthome_set_encrypt_key(s_dimmer->bthome, encrypt_key);
297-
bthome_set_local_mac_addr(s_dimmer->bthome, local_mac);
297+
bthome_set_local_mac_addr(s_dimmer->bthome, (uint8_t *)local_mac);
298298
bthome_load_params(s_dimmer->bthome);
299299

300300
esp_err_t res = xTaskCreate(dimmer_task, "dimmer task", 4096, NULL, 10, &s_dimmer->task_handle);

examples/bluetooth/ble_adv/bthome/dimmer/main/idf_component.yml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,8 @@ dependencies:
44
espressif/knob: "^0.1.4"
55
## Required IDF version
66
idf:
7-
version: ">=4.1.0"
8-
# # Put list of dependencies here
9-
# # For components maintained by Espressif:
10-
# component: "~1.0.0"
11-
# # For 3rd party components:
12-
# username/component: ">=1.0.0,<2.0.0"
13-
# username2/component2:
14-
# version: "~1.0.0"
15-
# # For transient dependencies `public` flag can be set.
16-
# # `public` flag doesn't have an effect dependencies of the `main` component.
17-
# # All dependencies of `main` are public by default.
18-
# public: true
7+
version: ">=5.0"
8+
bthome:
9+
override_path: "../../../../../components/bluetooth/ble_adv/bthome"
10+
ble_hci:
11+
override_path: "../../../../../components/bluetooth/ble_hci"

0 commit comments

Comments
 (0)