Merge #644 into sdk602patch0626 from refs/changes/644/head 646/target/1
authorsnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sat, 3 Aug 2024 12:38:48 +0000 (12:38 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sat, 3 Aug 2024 12:38:48 +0000 (12:38 +0000)
Code review from snickersun@163.com

* refs/changes/644/head: (2 commits squashed)

  - 优化下载效率,cat1 恢复采用 pm.autosleep进行控制功耗

  - Merge branch &#39;sdk602patch0626&#39; of codeup.aliyun.com:64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

Signed-off-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/644
cat1modem/src/cat1Service.py
code/sdk/drivers/peripheral/slip/cat1Service/cat1_ctl.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp
code/sdk/drivers/peripheral/slip/uart_slip.c
code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c
code/sdk/open_source/openharmony/third_party/lwip/port/lwip-2.1/porting/include/lwip/lwipopts.h
code/sdk/open_source/openharmony/third_party/lwip/src/api/tcpip.c

index 45044c1..416a150 100644 (file)
@@ -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()
index 377b764..70b417e 100644 (file)
@@ -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)
index e5ea2d7..d9e617d 100644 (file)
@@ -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 ) {
         
index b4547fa..6b38077 100644 (file)
@@ -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;
 }
 
index 21b44e9..fc3638f 100644 (file)
@@ -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;
index 5cfb687..d8e4d7c 100644 (file)
 #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
index ce3b648..9a5a538 100644 (file)
@@ -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);
 }
 
 /**