Browse Source

esp32透传(PC通过UART下发JSON给客户端,客户端再通过蓝牙发送给服务端)

master
zwsd 3 years ago
parent
commit
d7a1273043
  1. 4
      main/ble_spp_client_demo.c
  2. 4
      main/ble_spp_client_demo.h
  3. 6
      main/key.c
  4. 2
      main/key.h
  5. 2
      main/main.c

4
main/ble_spp_client_demo.c

@ -693,14 +693,14 @@ void ble_init()
spp_uart_init();
}
void ble_gattc_write_char_cb(char* string)
void ble_gattc_write_char_cb(char *string, uint8_t string_length)
{
if ((is_connect == true) && (db != NULL) && ((db + SPP_IDX_SPP_DATA_RECV_VAL)->properties & (ESP_GATT_CHAR_PROP_BIT_WRITE_NR | ESP_GATT_CHAR_PROP_BIT_WRITE)))
{
esp_ble_gattc_write_char(spp_gattc_if,
spp_conn_id,
(db + SPP_IDX_SPP_DATA_RECV_VAL)->attribute_handle,
strlen(string),
string_length,
(uint8_t *)string,
ESP_GATT_WRITE_TYPE_RSP,
ESP_GATT_AUTH_REQ_NONE);

4
main/ble_spp_client_demo.h

@ -22,7 +22,7 @@ enum
SPP_IDX_SPP_DATA_RECV_VAL,
// SPP_IDX_SPP_COMMAND_VAL,
// SPP_IDX_SPP_COMMAND_VAL,
#ifdef SUPPORT_HEARTBEAT
SPP_IDX_SPP_HEARTBEAT_VAL,
@ -33,4 +33,4 @@ enum
};
void ble_init();
void ble_gattc_write_char_cb();
void ble_gattc_write_char_cb(char *string, uint8_t string_length);

6
main/key.c

@ -22,21 +22,23 @@ void key_schedule()
if (gpio_get_level(KEY_REC) == 0)
{
/* code */
char *send_string = "{ \"order\": \"setPosition\", \"index\": 0, \"speedLevel\": 0, \"position\": 360, \"direction\": 1 }";
ESP_LOGI("Finny", "KEY_REC level 0");
while (gpio_get_level(KEY_REC) == 0)
{
}
s_ble_gattc_write_char_cb("{ \"order\": \"setPosition\", \"index\": 0, \"speedLevel\": 0, \"position\": 180, \"direction\": 1 }");
s_ble_gattc_write_char_cb(send_string, strlen(send_string));
ESP_LOGI("Finny", "stop");
}
if (gpio_get_level(KEY_MODE) == 0)
{
char *send_string = "{ \"order\": \"setPosition\", \"index\": 0, \"speedLevel\": 0, \"position\": 360, \"direction\": 1 }";
/* code */
ESP_LOGI("Finny", "KEY_MODE level 0");
while (gpio_get_level(KEY_MODE) == 0)
{
}
s_ble_gattc_write_char_cb("{ \"order\": \"setPosition\", \"index\": 0, \"speedLevel\": 0, \"position\": 360, \"direction\": 1 }");
s_ble_gattc_write_char_cb(send_string, strlen(send_string));
ESP_LOGI("Finny", "stop");
}
}

2
main/key.h

@ -7,7 +7,7 @@
#define KEY_MODE 39
#define GPIO_KEY_INPUT_PIN_SEL ((1ULL << KEY_REC) | (1ULL << KEY_MODE))
typedef void (*key_ble_cb_t)(char* string);
typedef void (*key_ble_cb_t)(char *string, uint8_t string_length);
void key_init();
void key_schedule();

2
main/main.c

@ -45,7 +45,7 @@ void pc_uart_receive(uart_port_t uart_num)
if (length != 0)
{
length = uart_read_bytes(uart_num, rx_data_buffer, length, 100);
uart_write_bytes(UART_NUM_2, rx_data_buffer, length);
ble_gattc_write_char_cb((char *)rx_data_buffer, length);
}
}

Loading…
Cancel
Save