当前位置: 首页 > news >正文

网站设计 广州php做图片交互网站代码

网站设计 广州,php做图片交互网站代码,动漫制作专业有哪些学校,制作图片文字模板的软件一、官方资源说明 官方指南#xff1a;空中升级 (OTA) - ESP32 - — ESP-IDF 编程指南 v4.3.6 文档#xff0c;虽然是正对ESP32的#xff0c;但是原理是一样的。 官方参考例程#xff1a;esp-idf\ESP8266_RTOS_SDK\examples\system\ota\#xff0c;其中包含两个例程空中升级 (OTA) - ESP32 - — ESP-IDF 编程指南 v4.3.6 文档虽然是正对ESP32的但是原理是一样的。 官方参考例程esp-idf\ESP8266_RTOS_SDK\examples\system\ota\其中包含两个例程一个是simple_ota_example另一个是native_ota。simple_ota_example例程调用的是封装之后函数只需要将固件的下载地址传入函数即可自动完成升级而native_ota调用的是原生的函数有更多的过程详细展示了OTA的下载、存储过程以及校验。这里以simple_ota_example为例进行讲解。 二、修改配置文件 1、修改Partition Table 使用带ota分区的Partition Table在flash区域中划出两块app存储空间一块区域是当前运行的app区另一块区域是新下载的app存放的区域。进入到工程目录中执行make menuconfig然后选择 Partition Table  --- Partition Table (Single factory app, no OTA)  ---   (X) Factory app, two OTA definitions 2、允许http方式进行ota 此方式不需要证书更简单。 Component config  ---  ESP HTTPS OTA  --- [*] Allow HTTP for OTA (WARNING: ONLY FOR TESTING PURPOSE, READ HELP)   三、编写代码 1、升级流程 上电-进入app_main()-创建升级任务simple_ota_example_task-执行任务-等待wifi连接并获取IP地址-http请求服务器上的固件版本号-与当前运行版本号进行比较-如果服务器上的固件版本号更高-下载新的固件-下载完成之后重启设备。 2、代码 版本比较函数 /*** brief None.* param None.* retval None.*/ int edition_compare(const char* pszStr1, const char* pszStr2) {if (pszStr1 NULL || pszStr2 NULL) {return 0;}int nCurPos 0, nCapPos-1;const char* pszTmp1 pszStr1;const char* pszTmp2 pszStr2;while ((*pszTmp1 ! \0) (*pszTmp2 ! \0) (*pszTmp1 *pszTmp2)) { nCurPos; //找到第一个处不相同出现的位置pszTmp1;pszTmp2;if (*pszTmp1 .) {nCapPos nCurPos; //记录最近的‘.’的位置}}if (*pszTmp1 \0 *pszTmp2 \0) { // 两个字符串相等return 0;} else if(*pszTmp1 \0){return -1;} else if(*pszTmp2 \0){return 1;}else{ // 两个字符串不相等比较大小pszTmp1 pszStr1 nCapPos 1;pszTmp2 pszStr2 nCapPos 1;int pszNub1strtol(pszTmp1,NULL,10);int pszNub2strtol(pszTmp2,NULL,10);return (pszNub1 - pszNub2);} }创建设备事件用于等待网络连接 const int CONNECTED_BIT BIT0;s_device_event_group xEventGroupCreate(); event_handler()函数中加入s_device_event_group的设置 /*** brief event_handler.* param None.* retval None.*/ static void event_handler(void* arg, esp_event_base_t event_base,int32_t event_id, void* event_data) {if (event_base WIFI_EVENT event_id WIFI_EVENT_STA_START) {esp_wifi_connect();}else if (event_base WIFI_EVENT event_id WIFI_EVENT_STA_DISCONNECTED) { xEventGroupClearBits(s_wifi_event_group, CONNECTED_BIT);xEventGroupClearBits(s_device_event_group, WIFI_CONNECTED_BIT);esp_wifi_connect();}else if (event_base IP_EVENT event_id IP_EVENT_STA_GOT_IP) {xEventGroupSetBits(s_wifi_event_group, CONNECTED_BIT);xEventGroupSetBits(s_device_event_group, WIFI_CONNECTED_BIT);}else if (event_base SC_EVENT event_id SC_EVENT_SCAN_DONE) {ESP_LOGI(TAG, Scan done);}else if (event_base SC_EVENT event_id SC_EVENT_FOUND_CHANNEL) {ESP_LOGI(TAG, Found channel);} else if (event_base SC_EVENT event_id SC_EVENT_GOT_SSID_PSWD) {ESP_LOGI(TAG, Got SSID and password);smartconfig_event_got_ssid_pswd_t* evt (smartconfig_event_got_ssid_pswd_t*)event_data;wifi_config_t wifi_config;uint8_t ssid[33] { 0 };uint8_t password[65] { 0 };uint8_t rvd_data[33] { 0 };bzero(wifi_config, sizeof(wifi_config_t));memcpy(wifi_config.sta.ssid, evt-ssid, sizeof(wifi_config.sta.ssid));memcpy(wifi_config.sta.password, evt-password, sizeof(wifi_config.sta.password));wifi_config.sta.bssid_set evt-bssid_set;if (wifi_config.sta.bssid_set true) {memcpy(wifi_config.sta.bssid, evt-bssid, sizeof(wifi_config.sta.bssid));}memcpy(ssid, evt-ssid, sizeof(evt-ssid));memcpy(password, evt-password, sizeof(evt-password));ESP_LOGI(TAG, SSID:%s, ssid);ESP_LOGI(TAG, PASSWORD:%s, password);if (evt-type SC_TYPE_ESPTOUCH_V2) {ESP_ERROR_CHECK( esp_smartconfig_get_rvd_data(rvd_data, sizeof(rvd_data)) );ESP_LOGI(TAG, RVD_DATA:%s, rvd_data);}ESP_ERROR_CHECK(esp_wifi_disconnect());ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, wifi_config));ESP_ERROR_CHECK(esp_wifi_connect());} else if (event_base SC_EVENT event_id SC_EVENT_SEND_ACK_DONE) {xEventGroupSetBits(s_wifi_event_group, ESPTOUCH_DONE_BIT);} } 任务函数 /*** brief None.* param None.* retval None.*/ static void simple_ota_example_task(void * pvParameter) {EventBits_t uxBits xEventGroupWaitBits(s_device_event_group, WIFI_CONNECTED_BIT, pdFALSE, false, portMAX_DELAY ); if( (uxBits WIFI_CONNECTED_BIT) WIFI_CONNECTED_BIT ){ESP_LOGI(TAG, Starting OTA example...);char local_response_buffer[101] {0};esp_http_client_config_t config0 {.url http://www.huochaigun.top/hello-world/version.html,.event_handler _http_event_handler, // .user_data local_response_buffer, // Pass address of local buffer to get response.buffer_size 100};esp_http_client_handle_t client esp_http_client_init(config0); // GETesp_err_t err esp_http_client_perform(client);if (err ESP_OK) {ESP_LOGI(TAG, HTTP GET Status %d, content_length %d,esp_http_client_get_status_code(client),esp_http_client_get_content_length(client));} else {ESP_LOGE(TAG, HTTP GET request failed: %s, esp_err_to_name(err));}esp_http_client_read_response( client, local_response_buffer, 100 );local_response_buffer[ esp_http_client_get_content_length(client) ] \0;ESP_LOGI(TAG,http response:%s\n, local_response_buffer );esp_http_client_cleanup(client);if( edition_compare(local_response_buffer, AppVer) 0 ){esp_http_client_config_t config {.url http://www.huochaigun.top/hello-world/hello-world.bin,.event_handler _http_event_handler,};esp_err_t ret esp_https_ota(config);if (ret ESP_OK) {esp_restart();} else {ESP_LOGE(TAG, Firmware Upgrades Failed);}}else{ESP_LOGI(TAG, The current software is the latest version);}}vTaskDelete( NULL ); }app_main()中加入以下代码创建任务  xTaskCreate(simple_ota_example_task, ota_example_task, 8192, NULL, 5, NULL); 四、编译固件 执行make之后会新生成4个bin文件将4个bin文件下载到设备即可。 0xd000 ota_data_initial.bin 0x0 bootloader.bin 0x10000 hello-world.bin 0x8000 partitions_two_ota.bin 可提供有偿技术支持。
http://www.hkea.cn/news/14376243/

相关文章:

  • 做简历的网站 知乎综合类网站怎么做
  • 学校英文版网站建设方案网站策划编辑的职责
  • 北京建网站公司推荐app官网入口
  • 平阴县网站建设网站运作流程
  • 做网站一般注册哪几类商标网页设计基础的教学目的
  • 淘宝优惠券返利网站怎么做深圳新公司注册流程及费用
  • 正定网站制作拼多多网络营销方式
  • 做网站备案要处省的电话号码北京网站设计公司兴田德润信任高
  • 网站建设基础企业信息化建设方案 网站
  • 多少钱可以做网站wordpress淘点金组件
  • 软件公司网站系统集成建设做网站需要企业
  • 网站为什么维护中网络营销总结
  • 深圳网站建设 设计贝尔展馆设计费用取费标准
  • 框架网站建设网站建设深圳哪家公司好
  • 如何做一个更新网站天津建设工程信息网网上报名
  • 有哪些做设计交易网站有哪些内容电商平台商户
  • 开一家做网站公司成本科技有限公司和商贸有限公司区别
  • 园区网站建设需求调研报告设计友好的网站
  • 建设服装网站的亮点中文域名可以做网站吗
  • 如何做一元购网站东莞网站设计哪家好
  • 网站管理助手 建设中深圳网页设计培训费用
  • 广告公司网站首页wordpress加载特效插件
  • 徐州网站排名公司设计官网页面多少钱
  • wordpress 架站 电子书瑞安建设公司网站
  • 山东营销网站建设设计东莞小学网站建设
  • 简易的在线数据库网站模板wordpress2
  • 可以做来电名片的网站整站优化外包公司
  • 做专利费减是哪个网站wordpress 与现有sso
  • 网站建设方式与信息化wordpress页面编辑器
  • 网站制作优质公司wordpress+主题+试用