8000 Updated for LibCurl · programmer131/esp32-snippets@9e423b9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9e423b9

Browse files
committed
Updated for LibCurl
1 parent f32e5bd commit 9e423b9

File tree

15 files changed

+777
-272
lines changed

15 files changed

+777
-272
lines changed

cpp_utils/BLE.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ static EventGroupHandle_t g_eventGroup;
4444
*/
4545
static std::map<ble_address, BLEDevice> g_devices;
4646

47-
BLEServer *BLE::m_server;
47+
BLEServer *BLE::m_bleServer;
4848

4949
BLE::BLE() {
5050
}
@@ -184,8 +184,8 @@ void gatt_server_event_handler(
184184
ESP_LOGD(tag, "gatt_server_event_handler [esp_gatt_if: %d] ... %s",
185185
gatts_if, bt_utils_gatt_server_event_type_to_string(event).c_str());
186186
BLEUtils::dumpGattServerEvent(event, gatts_if, param);
187-
if (BLE::m_server != nullptr) {
188-
BLE::m_server->handleGATTServerEvent(event, gatts_if, param);
187+
if (BLE::m_bleServer != nullptr) {
188+
BLE::m_bleServer->handleGATTServerEvent(event, gatts_if, param);
189189
}
190190
} // gatt_server_event_handler
191191

@@ -345,8 +345,8 @@ static void gap_event_handler(
345345
ESP_LOGD(tag, "Unhandled search_evt type!");
346346
}
347347
} // ESP_GAP_BLE_SCAN_RESULT_EVT
348-
if (BLE::m_server != nullptr) {
349-
BLE::m_server->handleGAPEvent(event, param);
348+
if (BLE::m_bleServer != nullptr) {
349+
BLE::m_bleServer->handleGAPEvent(event, param);
350350
}
351351
} // gap_event_handler
352352

cpp_utils/BLE.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class BLE {
3030
static void initServer();
3131
static void scan(int duration, esp_ble_scan_type_t scan_type = BLE_SCAN_TYPE_PASSIVE);
3232
static esp_gatt_if_t getGattcIF();
33-
static BLEServer *m_server;
33+
static BLEServer *m_bleServer;
3434
}; // class BLE
3535

3636
#endif // CONFIG_BT_ENABLED

cpp_utils/BLEServer.cpp

Lines changed: 73 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ extern "C" {
2727
static esp_attr_value_t gatts_demo_char1_val;
2828
static uint8_t char1_str[] = {0x11,0x22,0x33};
2929

30-
30+
/**
31+
* Construct a BLE Server
32+
*/
3133
BLEServer::BLEServer(uint16_t appId, std::string deviceName) {
3234
m_appId = appId;
3335
m_deviceName = deviceName;
@@ -48,18 +50,45 @@ BLEServer::BLEServer(uint16_t appId, std::string deviceName) {
4850
0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00, 0xAB, 0xCD, 0xAB, 0xCD,
4951
};
5052
setUUID(test_service_uuid128);
51-
esp_ble_gatts_app_register(m_appId);
52-
}
53+
::esp_ble_gatts_app_register(m_appId);
54+
} // BLEServer
5355

5456
BLEServer::~BLEServer() {
55-
// TODO Auto-generated destructor stub
5657
}
5758

58-
void BLEServer::handleGATTServerEvent(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if,
59-
esp_ble_gatts_cb_param_t* param) {
60-
ESP_LOGD(tag, "BLEServer ... handling GATT Server event!");
59+
60+
/**
61+
* @brief setDeviceName
62+
* @param [in] deviceName
63+
*/
64+
void BLEServer::setDeviceName(std::string deviceName) {
65+
m_deviceName = deviceName;
66+
} // setDeviceName
67+
68+
69+
/**
70+
* @brief setUUID
71+
* @param [in] uuid
72+
*/
73+
void BLEServer::setUUID(uint8_t uuid[32]) {
74+
memcpy(m_uuid, uuid, 32);
75+
} // setUUID
76+
77+
/**
78+
* @brief Handle a GATT Server Event.
79+
* @param [in] event
80+
* @param [in] gatts_if
81+
* @param [in] param
82+
*
83+
*/
84+
void BLEServer::handleGATTServerEvent(
85+
esp_gatts_cb_event_t event,
86+
esp_gatt_if_t gatts_if,
87+
esp_ble_gatts_cb_param_t *param) {
88+
ESP_LOGD(tag, "handleGATTServerEvent: BLEServer ... handling GATT Server event!");
6189

6290
switch(event) {
91+
// ESP_GATTS_REG_EVT
6392
case ESP_GATTS_REG_EVT: {
6493
m_profile.gatts_if = gatts_if;
6594
ESP_LOGD(tag, "Registering device name: %s", m_deviceName.c_str());
@@ -82,34 +111,35 @@ void BLEServer::handleGATTServerEvent(esp_gatts_cb_event_t event, esp_gatt_if_t
82111
m_adv_data.service_uuid_len = 32;
83112
m_adv_data.p_service_uuid = m_uuid;
84113
m_adv_data.flag = (ESP_BLE_ADV_FLAG_GEN_DISC | ESP_BLE_ADV_FLAG_BREDR_NOT_SPT);
85-
ESP_LOGD(tag, "Setting advertizing data");
86-
errRc = esp_ble_gap_config_adv_data(&m_adv_data);
114+
ESP_LOGD(tag, "Setting advertising data");
115+
errRc = ::esp_ble_gap_config_adv_data(&m_adv_data);
87116
if (errRc != ESP_OK) {
88117
ESP_LOGE(tag, "esp_ble_gap_config_adv_data: rc=%d %s", errRc, espToString(errRc));
89118
return;
90119
}
91120

92121
ESP_LOGD(tag, "Creating service");
93-
errRc = esp_ble_gatts_create_service(gatts_if, &m_profile.service_id, 4);
122+
errRc = ::esp_ble_gatts_create_service(gatts_if, &m_profile.service_id, 4);
94123
if (errRc != ESP_OK) {
95124
ESP_LOGE(tag, "esp_ble_gatts_create_service: rc=%d %s", errRc, espToString(errRc));
96125
return;
97126
}
98127
break;
99128
} // ESP_GATTS_REG_EVT
100129

130+
// ESP_GATTS_CREATE_EVT
101131
case ESP_GATTS_CREATE_EVT: {
102132
m_profile.service_handle = param->create.service_handle;
103133
m_profile.char_uuid.len = ESP_UUID_LEN_16;
104134
m_profile.char_uuid.uuid.uuid16 = 0x99AA;
105135
ESP_LOGD(tag, "Starting service");
106-
esp_err_t errRc = esp_ble_gatts_start_service(m_profile.service_handle);
136+
esp_err_t errRc = ::esp_ble_gatts_start_service(m_profile.service_handle);
107137
if (errRc != ESP_OK) {
108138
ESP_LOGE(tag, "esp_ble_gatts_start_service: rc=%d %s", errRc, espToString(errRc));
109139
return;
110140
}
111141
ESP_LOGD(tag, "Adding characteristic");
112-
errRc = esp_ble_gatts_add_char(
142+
errRc = ::esp_ble_gatts_add_char(
113143
m_profile.service_handle,
114144
&m_profile.char_uuid,
115145
(esp_gatt_perm_t)(ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE),
@@ -122,14 +152,41 @@ void BLEServer::handleGATTServerEvent(esp_gatts_cb_event_t event, esp_gatt_if_t
122152
}
123153
break;
124154
} // ESP_GATTS_CREATE_EVT
155+
156+
157+
// ESP_GATTS_READ_EVT - A request to read the value of a characteristic has arrived.
158+
case ESP_GATTS_READ_EVT: {
159+
ESP_LOGD(tag, "Sending a response");
160+
if (param->read.need_rsp) {
161+
esp_gatt_rsp_t rsp;
162+
rsp.attr_value.len = 1;
163+
rsp.attr_value.handle = param->read.handle;
164+
rsp.attr_value.offset = 0;
165+
rsp.attr_value.auth_req = ESP_GATT_AUTH_REQ_NONE;
166+
rsp.attr_value.value[0] = 'X';
167+
esp_err_t errRc = ::esp_ble_gatts_send_response(gatts_if, param->read.conn_id, param->read.trans_id, ESP_GATT_OK, &rsp);
168+
if (errRc != ESP_OK) {
169+
ESP_LOGE(tag, "esp_ble_gatts_add_char: rc=%d %s", errRc, espToString(errRc));
170+
}
171+
}
172+
break;
173+
} // ESP_GATTS_READ_EVT
174+
175+
125176
default:
126177
break;
127178
}
128179
} // handleGATTServerEvent
129180

130181

131-
void BLEServer::handleGAPEvent(esp_gap_ble_cb_event_t event,
132-
esp_ble_gap_cb_param_t* param) {
182+
/**
183+
* @brief handleGAPEvent
184+
* @param [in] event
185+
* @param [in] param
186+
*/
187+
void BLEServer::handleGAPEvent(
188+
esp_gap_ble_cb_event_t event,
189+
esp_ble_gap_cb_param_t *param) {
133190
ESP_LOGD(tag, "BLEServer ... handling GAP event!");
134191
switch(event) {
135192
case ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT: {
@@ -140,8 +197,8 @@ void BLEServer::handleGAPEvent(esp_gap_ble_cb_event_t event,
140197
adv_params.own_addr_type = BLE_ADDR_TYPE_PUBLIC;
141198
adv_params.channel_map = ADV_CHNL_ALL;
142199
adv_params.adv_filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY;
143-
ESP_LOGD(tag, "Starting advertizing");
144-
esp_err_t errRc = esp_ble_gap_start_advertising(&adv_params);
200+
ESP_LOGD(tag, "Starting advertising");
201+
esp_err_t errRc = ::esp_ble_gap_start_advertising(&adv_params);
145202
if (errRc != ESP_OK) {
146203
ESP_LOGE(tag, "esp_ble_gap_start_advertising: rc=%d %s", errRc, espToString(errRc));
147204
return;

cpp_utils/BLEServer.h

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,16 @@ class BLEServer {
3030
public:
3131
BLEServer(uint16_t appId, std::string deviceName);
3232
virtual ~BLEServer();
33-
void setDeviceName(std::string deviceName) {
34-
m_deviceName = deviceName;
35-
}
36-
void handleGATTServerEvent(esp_gatts_cb_event_t event,
37-
esp_gatt_if_t gatts_if,
38-
esp_ble_gatts_cb_param_t *param);
33+
3934
void handleGAPEvent(
4035
esp_gap_ble_cb_event_t event,
4136
esp_ble_gap_cb_param_t *param);
42-
void setUUID(uint8_t uuid[32]) {
43-
memcpy(m_uuid, uuid, 32);
44-
}
37+
void handleGATTServerEvent(esp_gatts_cb_event_t event,
38+
esp_gatt_if_t gatts_if,
39+
esp_ble_gatts_cb_param_t *param);
40+
void setDeviceName(std::string deviceName);
41+
void setUUID(uint8_t uuid[32]);
42+
4543
private:
4644
std::string m_deviceName;
4745
uint16_t m_appId;

cpp_utils/BLEUtils.cpp

Lines changed: 72 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -735,47 +735,87 @@ void BLEUtils::dumpGattClientEvent(
735735
* @param [in] event The event type that was posted.
736736
* @param [in] evtParam A union of structures only one of which is populated.
737737
*/
738-
void BLEUtils::dumpGattServerEvent(esp_gatts_cb_event_t event,
739-
esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t* evtParam) {
738+
void BLEUtils::dumpGattServerEvent(
739+
esp_gatts_cb_event_t event,
740+
esp_gatt_if_t gatts_if,
741+
esp_ble_gatts_cb_param_t *evtParam) {
740742
ESP_LOGD(tag, "GATT ServerEvent: %s", bt_utils_gatt_server_event_type_to_string(event).c_str());
741743
switch(event) {
744+
case ESP_GATTS_ADD_CHAR_EVT: {
745+
ESP_LOGD(tag, "[status: %s, attr_handle: %d (0x%.2x), service_handle: %d (0x%.2x), char_uuid: %s]",
746+
gattStatusToString(evtParam->add_char.status).c_str(),
747+
evtParam->add_char.attr_handle,
748+
evtParam->add_char.attr_handle,
749+
evtParam->add_char.service_handle,
750+
evtParam->add_char.service_handle,
751+
uuidToString(evtParam->add_char.char_uuid).c_str());
752+
break;
753+
}
742754

743-
case ESP_GATTS_REG_EVT:
744-
ESP_LOGD(tag, "[status: %s, app_id: %d]", gattStatusToString(evtParam->reg.status).c_str(), evtParam->reg.app_id);
745-
break;
755+
case ESP_GATTS_CONNECT_EVT:
756+
case ESP_GATTS_DISCONNECT_EVT: {
757+
ESP_LOGD(tag, "[conn_id: %d, remote_bda: %s, is_connected: %d]",
758+
evtParam->connect.conn_id,
759+
addressToString(evtParam->connect.remote_bda).c_str(),
760+
evtParam->connect.is_connected);
761+
break;
762+
}
746763

747-
case ESP_GATTS_START_EVT:
748-
ESP_LOGD(tag, "[status: %s, service_handle: %d]", gattStatusToString(evtParam->start.status).c_str(), evtParam->start.service_handle);
749-
break;
764+
case ESP_GATTS_CREATE_EVT: {
765+
ESP_LOGD(tag, "[status: %s, service_handle: %d (0x%.2x), service_id: [%s]]",
766+
gattStatusToString(evtParam->create.status).c_str(),
767+
evtParam->create.service_handle,
768+
evtParam->create.service_handle,
769+
gattServiceIdToString(evtParam->create.service_id).c_str());
770+
break;
771+
}
750772

751-
case ESP_GATTS_CREATE_EVT:
752-
ESP_LOGD(tag, "[status: %s, service_handle: %d, service_id: [%s]]",
753-
gattStatusToString(evtParam->create.status).c_str(),
754-
evtParam->create.service_handle,
755-
gattServiceIdToString(evtParam->create.service_id).c_str());
756-
break;
773+
case ESP_GATTS_MTU_EVT: {
774+
ESP_LOGD(tag, "[conn_id: %d, mtu: %d]",
775+
evtParam->mtu.conn_id,
776+
evtParam->mtu.mtu);
777+
break;
778+
}
757779

758-
case ESP_GATTS_CONNECT_EVT:
759-
case ESP_GATTS_DISCONNECT_EVT:
760-
ESP_LOGD(tag, "[conn_id: %d, remote_bda: %s, is_connected: %d]",
761-
evtParam->connect.conn_id,
762-
addressToString(evtParam->connect.remote_bda).c_str(),
763-
evtParam->connect.is_connected);
764-
break;
780+
case ESP_GATTS_READ_EVT: {
781+
ESP_LOGD(tag, "[conn_id: %d, trans_id: %d, bda: %s, handle: %d (0x%.2x), is_long: %d, need_rsp:%d]",
782+
evtParam->read.conn_id,
783+
evtParam->read.trans_id,
784+
addressToString(evtParam->read.bda).c_str(),
785+
evtParam->read.handle,
786+
evtParam->read.handle,
787+
evtParam->read.is_long,
788+
evtParam->read.need_rsp);
789+
break;
790+
}
765791

766-
case ESP_GATTS_ADD_CHAR_EVT:
767-
ESP_LOGD(tag, "[status: %s, attr_handle: %d, service_handle: %d, char_uuid: %s]",
768-
gattStatusToString(evtParam->add_char.status).c_str(),
769-
evtParam->add_char.attr_handle,
770-
evtParam->add_char.service_handle,
771-
uuidToString(evtParam->add_char.char_uuid).c_str());
772-
break;
792+
case ESP_GATTS_RESPONSE_EVT: {
793+
ESP_LOGD(tag, "[status: %s, handle: %d (0x%.2x)]",
794+
gattStatusToString(evtParam->rsp.status).c_str(),
795+
evtParam->rsp.handle,
796+
evtParam->rsp.handle);
797+
break;
798+
}
773799

800+
case ESP_GATTS_REG_EVT: {
801+
ESP_LOGD(tag, "[status: %s, app_id: %d]",
802+
gattStatusToString(evtParam->reg.status).c_str(),
803+
evtParam->reg.app_id);
804+
break;
805+
}
774806

775-
default:
776-
ESP_LOGD(tag, "dumpGattServerEvent: *** NOT CODED ***");
777-
break;
778-
}
807+
case ESP_GATTS_START_EVT: {
808+
ESP_LOGD(tag, "[status: %s, service_handle: %d (0x%.2x)]",
809+
gattStatusToString(evtParam->start.status).c_str(),
810+
evtParam->start.service_handle,
811+
evtParam->start.service_handle);
812+
break;
813+
}
814+
815+
default:
816+
ESP_LOGD(tag, "dumpGattServerEvent: *** NOT CODED ***");
817+
break;
818+
}
779819
} // dumpGattServerEvent
780820

781821
/**

0 commit comments

Comments
 (0)
0