使用流程:
1、调用 protocomm_new api创建一个protocomm实例
2、调用protocomm_add_endpoint 给实例添加一个回调函数
3、调用protocomm_req_handle api给protocomm实例发送请求(实际上就是调用第二步绑定的那个回调函数)
示例:
esp32 host方案中,esp32源代码中:
protocomm_pserial_common_handler函数进行全局处理:
需要调试的时候打开ESP_LOG_BUFFER_HEXDUMP宏即可
实际上数据接受,命令处理,数据返回都是在函数data_transfer_handler中进行处理的!
esp_hosted_config_command_dispatcher执行命令,返回命令结果
esp_hosted_config_payload__pack (&resp, *outbuf);将命令执行结果序列化到outbuf中(outbuf也是data_transfer_handler的输出型参数)
实例:
pc_pserial = protocomm_new();
if (pc_pserial == NULL) {
ESP_LOGE(TAG,"Failed to allocate memory for new instance of protocomm ");
return;
}
if (protocomm_add_endpoint(pc_pserial, "control", data_transfer_handler, NULL) != ESP_OK) {
ESP_LOGE(TAG, "Failed to add enpoint");
return;
}
ref:
Protocol Communication - ESP32-C3 - — ESP-IDF 编程指南 latest 文档