From e88dc23c2ac3037ed4d11a72e214b1d56437708a Mon Sep 17 00:00:00 2001 From: "snickersun@163.com" Date: Sat, 3 Aug 2024 12:38:48 +0000 Subject: [PATCH] Merge #644 into sdk602patch0626 from refs/changes/644/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from snickersun@163.com * refs/changes/644/head: (2 commits squashed) - 优化下载效率,cat1 恢复采用 pm.autosleep进行控制功耗 - Merge branch 'sdk602patch0626' of codeup.aliyun.com:64191456b9581d62e8f81ac0/FD230 into sdk602patch0626 Signed-off-by: snickersun@163.com Reviewed-by: snickersun@163.com Merged-by: snickersun@163.com CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/644 --- cat1modem/src/cat1Service.py | 14 +++++++------- .../peripheral/slip/cat1Service/cat1_ctl.cpp | 2 ++ .../peripheral/slip/cat1Service/cat1_server.cpp | 13 +++++++++++-- code/sdk/drivers/peripheral/slip/uart_slip.c | 17 +++++++++++++++-- .../peripheral/utils/custom_utils_at_cmd.c | 6 +++++- .../lwip-2.1/porting/include/lwip/lwipopts.h | 2 +- .../third_party/lwip/src/api/tcpip.c | 6 +++--- 7 files changed, 44 insertions(+), 16 deletions(-) diff --git a/cat1modem/src/cat1Service.py b/cat1modem/src/cat1Service.py index 45044c179..416a15046 100644 --- a/cat1modem/src/cat1Service.py +++ b/cat1modem/src/cat1Service.py @@ -82,9 +82,9 @@ CURRENT_APP_TYPE="pysrv" log.basicConfig(level=log.INFO) cat1service_log = log.getLogger("cat1service") -lpm_fd = pm.create_wakelock("system_lock", len("system_lock")) +# lpm_fd = pm.create_wakelock("system_lock", len("system_lock")) pm.autosleep(1) -pm.wakelock_lock(lpm_fd) +# pm.wakelock_lock(lpm_fd) cat1service_log.info("create_wakelock {}".format(pm.get_wakelock_num())) telecomTimerCount = 0 def get_versionkeyname_by_py(app_type): @@ -139,12 +139,12 @@ def ExtIntfun(args): # cat1service_log.info('### interrupt {} ###'.format(args)) # args[0]:gpio号 args[1]:上升沿或下降沿 if args[1] == 0: cat1service_log.info("disable autosleep") - # pm.autosleep(0) - pm.wakelock_lock(lpm_fd) + pm.autosleep(0) + # pm.wakelock_lock(lpm_fd) elif args[1] == 1: cat1service_log.info("enable autosleep") - pm.wakelock_unlock(lpm_fd) - # pm.autosleep(1) + # pm.wakelock_unlock(lpm_fd) + pm.autosleep(1) # cat1service_log.info("recvDataPin={}".format(recvDataPin.read())) extint = ExtInt(ExtInt.GPIO22, ExtInt.IRQ_RISING_FALLING, ExtInt.PULL_DISABLE, ExtIntfun) extint.enable() @@ -688,7 +688,7 @@ class Cat1Service: return 0 self.__waiting_netstat = 1 stage, state = checkNet.waitNetworkReady(30) - pm.wakelock_unlock(lpm_fd) + # pm.wakelock_unlock(lpm_fd) if stage == 3 and state == 1: print('Network connection successful.') self.set_network_config() diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ctl.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ctl.cpp index 377b764a9..70b417e71 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ctl.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ctl.cpp @@ -108,9 +108,11 @@ void cat1_ring_isr_callback(pin_t pin, uintptr_t param) } static uint8_t cat1_keepon_wakeup = 0; +extern void set_skip_cat1_service_udp_transfer(uint8_t skip); void uapi_cat1_keep_wakeup(uint8_t keep_wakeup) { cat1_keepon_wakeup = keep_wakeup; + set_skip_cat1_service_udp_transfer(keep_wakeup); uapi_cat1_wakeup_cat1(cat1_keepon_wakeup); } void uapi_cat1_wakeup_cat1(uint8_t wakeup) diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp index e5ea2d70d..d9e617df4 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp @@ -51,7 +51,7 @@ extern "C" { #include "custom_utils.h" #include "cmsis_os.h" - +static uint8_t g_skip_cat1_service_udp_transfer = 0; #define PEER_IP "172.16.1.2" #define PEER_PORT 5000 @@ -98,7 +98,10 @@ enum UDP_COMMAND_HEAD { static uint8_t g_msg_format_type = 0; static char ble_buffer[20] = {0}; - +void set_skip_cat1_service_udp_transfer(uint8_t skip) +{ + g_skip_cat1_service_udp_transfer = skip; +} void ble_get_cat1_at_msg(char *buffer,uint8_t len) { memcpy_s(buffer,len,ble_buffer,strlen(ble_buffer)); @@ -353,6 +356,12 @@ void udp_send_msg_toCat1(uint8_t cmd,char *content) uapi_cat1_wakeup_cat1(1); // uart_port_register_irq(UART_BUS_0); osal_irq_enable(UART_1_IRQN); + + if (g_skip_cat1_service_udp_transfer == 1) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," g_skip_cat1_service_udp_transfer \n"); + return ; + } char station_tx_buffer[MAX_TCP_MSG_BUFFER_LEN] = {0}; if( sourceAddr.sin_port != 0 ) { diff --git a/code/sdk/drivers/peripheral/slip/uart_slip.c b/code/sdk/drivers/peripheral/slip/uart_slip.c index b4547fa1a..6b38077ae 100644 --- a/code/sdk/drivers/peripheral/slip/uart_slip.c +++ b/code/sdk/drivers/peripheral/slip/uart_slip.c @@ -139,14 +139,21 @@ int user_netif_init(void) slipif_initialled = true; return 0; } - +#define USE_SLIP_SERVICE void slip_receive_handler(uint8_t *buffer, int32_t size) { // WEARABLE_LOGD(WEARABLE_LOG_MODULE_MAIN_SERVICE,"slip_receive_handler %d \n",size); if (slipif_initialled == true) + { + #ifdef USE_SLIP_SERVICE do_uart_slip_cmd(UART_SLIP_CMD_MSG_READ_DATA,buffer,size); + #else + slipif_received_bytes(&sl_netif, buffer, size); + #endif + } + } #define SLIP_CMD_TASK_MSG_COUNT 512 @@ -165,10 +172,12 @@ int slip_uart_init(void) PRINT("slip_uart_init !\r\n"); + +#ifdef USE_SLIP_SERVICE app_task_definition_t taskcfg={0}; taskcfg.create_queue_handle = create_slip_uart_queue; taskcfg.attr.name="uart_slip_service"; - taskcfg.attr.priority = osPriorityNormal; + taskcfg.attr.priority = osPriorityHigh;//osPriorityNormal; GUI osPriorityAboveNormal2 taskcfg.attr.stack_size = SLIP_CMD_TASK_SIZE; taskcfg.func = uart_event_task; taskcfg.use_mem = USE_DTCM_MEM; @@ -179,6 +188,10 @@ int slip_uart_init(void) PRINT("create uart_slip_service failed %d!\r\n",ret); return ERRCODE_FAIL; } +#else + errcode_t ret = user_netif_init(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_MAIN_SERVICE,"user_netif_init ret=0x%02X! \r\n",ret); +#endif return ERRCODE_SUCC; } diff --git a/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c b/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c index 21b44e965..fc3638f2a 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c @@ -179,6 +179,9 @@ static uint32_t custom_start_ota_download(uint8_t *para, uint32_t paraLen, char uint8_t *otadatapath = (uint8_t*)argv[3]; wstp_print("custom_start_ota_download %s:%d %s to %s\r\n",server,port,uri,otadatapath); httpc_connection_t settings = {0}; + + + #if 0 size_t calen = sizeof(SSL_CA_PEM); struct altcp_tls_config *tlsconfig = altcp_tls_create_config_client((const uint8_t *)SSL_CA_PEM,calen); wstp_print("custom_start_ota_download pa perm %s \n======len %d \r\n",SSL_CA_PEM,calen); @@ -189,9 +192,10 @@ static uint32_t custom_start_ota_download(uint8_t *para, uint32_t paraLen, char g_allocator->alloc = altcp_tls_alloc; g_allocator->arg = (void*)tlsconfig; + settings.altcp_allocator=g_allocator; + #endif - settings.altcp_allocator=g_allocator; settings.result_fn=httpc_download_result; settings.file_rx_fn = httpc_download_file_recv_ui; settings.headers_done_fn=httpc_download_headers_done; diff --git a/code/sdk/open_source/openharmony/third_party/lwip/port/lwip-2.1/porting/include/lwip/lwipopts.h b/code/sdk/open_source/openharmony/third_party/lwip/port/lwip-2.1/porting/include/lwip/lwipopts.h index 5cfb687e2..d8e4d7c69 100644 --- a/code/sdk/open_source/openharmony/third_party/lwip/port/lwip-2.1/porting/include/lwip/lwipopts.h +++ b/code/sdk/open_source/openharmony/third_party/lwip/port/lwip-2.1/porting/include/lwip/lwipopts.h @@ -176,7 +176,7 @@ #define PBUF_POOL_SIZE 64 #define SO_REUSE 1 #define TCPIP_MBOX_SIZE 512 -#define TCPIP_THREAD_PRIO 5 +#define TCPIP_THREAD_PRIO 16 //osPriorityBelowNormal 16 #define TCPIP_THREAD_STACKSIZE 0x6000 #define TCP_MAXRTX 64 // #define TCP_MSS 1400 diff --git a/code/sdk/open_source/openharmony/third_party/lwip/src/api/tcpip.c b/code/sdk/open_source/openharmony/third_party/lwip/src/api/tcpip.c index ce3b64830..9a5a5386e 100644 --- a/code/sdk/open_source/openharmony/third_party/lwip/src/api/tcpip.c +++ b/code/sdk/open_source/openharmony/third_party/lwip/src/api/tcpip.c @@ -619,8 +619,8 @@ tcpip_init(tcpip_init_done_fn initfunc, void *arg) #endif /* LWIP_TCPIP_CORE_LOCKING */ taskcfg.create_queue_handle = NULL; - taskcfg.attr.name="TCPIP_THREAD_NAME"; - taskcfg.attr.priority = osPriorityBelowNormal; + taskcfg.attr.name=TCPIP_THREAD_NAME; + taskcfg.attr.priority = TCPIP_THREAD_PRIO;// osPriorityBelowNormal; taskcfg.attr.stack_size = TCPIP_THREAD_STACKSIZE; taskcfg.func = tcpip_thread; taskcfg.use_mem = USE_EXTEND_MEM; @@ -630,7 +630,7 @@ tcpip_init(tcpip_init_done_fn initfunc, void *arg) printf("create tcpip_thread failed %d\n",ret); else printf("create tcpip_thread succed\n"); - //sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO); + // sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO); } /** -- 2.17.1