A5133 通讯协议添加时间戳。 606/1 606/head 607/target/1 608/target/1
authorSnickerSun <snickersun@163.com>
Sat, 27 Jul 2024 04:57:49 +0000 (12:57 +0800)
committerSnickerSun <snickersun@163.com>
Sat, 27 Jul 2024 04:57:49 +0000 (12:57 +0800)
code/sdk/application/wearable/fd230app/nativeui/languagecode/LanguageInit.cpp
code/sdk/build/config/target_config/brandy/config.py
code/sdk/drivers/peripheral/a5133/A5133Main.c
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index 807de8b..0c9254b 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-30 09:14:38
- * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-23 17:10:22
+ * @LastEditors: SnickerSun snickersun@163.com
+ * @LastEditTime: 2024-07-27 11:50:49
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/LanguageInit.cpp
  */
 #include <fstream>
@@ -116,6 +116,10 @@ namespace OHOS
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLangues");
         // 获取json里面的语言
+        #ifdef A5133_DEMO_CLIENT
+            NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
+            FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, 0);
+        #else
         int thelanguage = ConfigModel::GetInstance()->GetLanguage();
         if(ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
         {
@@ -132,6 +136,7 @@ namespace OHOS
             NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
         }
         FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, thelanguage);
+        #endif
         return true;
     }
 
index d54f535..4ee7573 100755 (executable)
@@ -213,6 +213,7 @@ target = {
                     ,'A5133_DEMO_SERVER'
                     # ,'A5133_DEMO_CLIENT'
                     ,'DISABLE_ENCODER'
+                    ,'SUPPORT_A5133_SERVICE_BLE_PAIR'
                     ,'-:ENABLE_CYWEE'
                     ,'-:SUPPORT_ALIPAY_SEC'
                     # 'WEARABLE_LOG_DEBUG',
index 7439a70..41eaca9 100644 (file)
@@ -25,6 +25,7 @@
 #include "A5133main.h"\r
 #include "platform_core.h"\r
 #include "errcode.h"\r
+#include "custom_utils.h"\r
 \r
 /*********************************************************************\r
 **  I/O Declaration\r
@@ -58,6 +59,7 @@ Uint8          CmdBuf[25];
 Uint8           tmpbuf[80];\r
 Uint8           tmpbuf_rx[80];\r
 uint8_t      tmpbuf_len=0;\r
+uint32_t     tmpbuf_rx_timestamp = 0;\r
 Uint16          Err_Loss;\r
 Uint16      Err_Frame;\r
 Uint32          Err_BitCnt;\r
@@ -94,29 +96,42 @@ static uint8_t send_data[2][64] = {0};
 static uint8_t send_data_index = 0;\r
 static bool update_flag = false;\r
 errcode_t a5133_set_send_data(uint8_t *senddata,uint8_t datalen)\r
-{\r
-       if ( datalen > (64-1-8) || datalen == 0  || senddata == NULL)\r
+{                              \r
+       //  total(64) , header(4), timestamp(4), len(1), data(n-11) , crc(2)\r
+       if ( datalen == 0  || senddata == NULL)\r
+       {\r
+               PRINT("a5133_set_send_data data error!\n");\r
                return ERRCODE_FAIL;\r
-\r
+       }\r
+       if (datalen > (64 - 1 - 4 - 4 - 2 ))\r
+       {\r
+               datalen = 64 - 1- 4-4-2  ;\r
+               senddata[datalen -1 ]= 0;\r
+               PRINT("datalen is too large cut to %d!\n",datalen);\r
+       }\r
+       uint32_t current_time = 0;\r
+       uapi_get_timestampe_ss(&current_time);\r
        if (send_data_index == 0)\r
        {\r
                uint8_t* p_senddata=send_data[1];\r
                memset(p_senddata,0,sizeof(send_data[0]));\r
-               p_senddata[0]=datalen;\r
-               memcpy(p_senddata+1,senddata,datalen);\r
-               uint16_t crc =  CRC16_XMODEM(p_senddata+1,datalen); \r
-               p_senddata[datalen+1] = ((uint8_t*)&crc)[0];\r
-               p_senddata[datalen+1+1] = ((uint8_t*)&crc)[1];\r
+               memcpy(p_senddata,&current_time,sizeof(current_time));\r
+               p_senddata[4]=datalen;\r
+               memcpy(p_senddata+1+4,senddata,datalen);\r
+               uint16_t crc =  CRC16_XMODEM(p_senddata+1+4,datalen); \r
+               p_senddata[datalen+1+4] = ((uint8_t*)&crc)[0];\r
+               p_senddata[datalen+1+1+4] = ((uint8_t*)&crc)[1];\r
                send_data_index = 1;\r
                PRINT("send_data_index 1 datalen %d , crc %X\n",datalen,crc);\r
        }else{\r
                uint8_t * p_senddata=send_data[0];\r
                memset(p_senddata,0,sizeof(send_data[0]));\r
-               p_senddata[0]=datalen;\r
-               memcpy(p_senddata+1,senddata,datalen);\r
-               uint16_t crc =  CRC16_XMODEM(p_senddata+1,datalen); \r
-               p_senddata[datalen+1] = ((uint8_t*)&crc)[0];\r
-               p_senddata[datalen+1+1] = ((uint8_t*)&crc)[1];\r
+               memcpy(p_senddata,&current_time,sizeof(current_time));\r
+               p_senddata[4]=datalen;\r
+               memcpy(p_senddata+1+4,senddata,datalen);\r
+               uint16_t crc =  CRC16_XMODEM(p_senddata+1+4,datalen); \r
+               p_senddata[datalen+1+4] = ((uint8_t*)&crc)[0];\r
+               p_senddata[datalen+1+1+4] = ((uint8_t*)&crc)[1];\r
                send_data_index = 0;\r
                PRINT("send_data_index 0 datalen %d , crc %X\n",datalen,crc);\r
        }\r
@@ -279,7 +294,10 @@ void ISR_Timer0 (void) //interrupt 1
                //发送数据切换\r
        #ifdef A5133_DEMO_SERVER\r
        if (TimerCnt >=100)\r
-       a5133_demo_msg_change_callback();\r
+       {\r
+               a5133_demo_msg_change_callback();\r
+               TimerCnt=0;\r
+       }\r
        #else\r
        if (TimerCnt >=500)\r
        {\r
@@ -547,11 +565,13 @@ void RxPacket(void)
        //crccheck\r
 \r
        a5133_gpio_scs_set_value(1);\r
-       uint8_t datalen = tmpbuf[4];\r
-       if (datalen >0 && datalen <= (64-4-1))\r
+       uint32_t msg_timestamp = *(uint32_t*)&tmpbuf[4];\r
+       uint8_t datalen = tmpbuf[4+4];\r
+       //  total(64) , header(4), timestamp(4), len(1), data(n-11) , crc(2)\r
+       if (datalen >0 && datalen <= (64-4 -4 -1 -2 ))\r
        {\r
-               uint16_t crc = CRC16_XMODEM(&tmpbuf[1+4],datalen);\r
-               uint16_t recv_crc =  *(uint16_t*)&tmpbuf[1+datalen+4];\r
+               uint16_t crc = CRC16_XMODEM(&tmpbuf[1+4+4],datalen);\r
+               uint16_t recv_crc =  *(uint16_t*)&tmpbuf[1+4+datalen+4];\r
                PRINT("crc[%X] , recv_crc %X\n",crc,recv_crc);\r
                if (crc != recv_crc)\r
                {\r
@@ -560,10 +580,11 @@ void RxPacket(void)
                else\r
                {\r
                        tmpbuf_len = datalen;\r
+                       tmpbuf_rx_timestamp = msg_timestamp;\r
                        memset(tmpbuf_rx, 0 ,sizeof(tmpbuf_rx));\r
-                       memcpy(tmpbuf_rx, &tmpbuf[1+4],datalen);\r
+                       memcpy(tmpbuf_rx, &tmpbuf[1+4+4],datalen);\r
                }\r
-               printf("=====RxPacket \n");\r
+               printf("=====RxPacket timestamp %d , %s\n",tmpbuf_rx_timestamp,tmpbuf_rx);\r
                \r
        }else{\r
                err = 1 ;\r
index c5bd604..1953c12 100644 (file)
@@ -305,25 +305,24 @@ bool stop_alipay_ble_service(void)
     return true;
 }
 
-#ifdef A5133_DEMO_SERVER
-
 uint8_t a5133_demo_msg_send[2][64]={
     "前方路段发生塌方,请紧急制动!",
-    "å\89\8dæ\96¹é\81\93è·¯æ\8b¥å µï¼\8c请å\87\8fé\80\9fæ\85¢è¡\8cï¼\8c注æ\84\8få®\89å\85¨ï¼\81"
+    "前方道路拥堵,请减速慢行!"
 };
 static uint8_t a5133_demo_msg_send_index=0;
 void a5133_demo_msg_change_callback(void)
 {
     uint8_t* p_msg =  (uint8_t*)&a5133_demo_msg_send[a5133_demo_msg_send_index];
     int msg_len = strlen((char*)p_msg);
+    PRINT("a5133 send msg[%d] msg_len[%d] %s "NEWLINE,a5133_demo_msg_send_index, msg_len , p_msg );
     uapi_a5133_set_send_data(p_msg,msg_len);
-    PRINT("a5133 send msg[%d] %s"NEWLINE,a5133_demo_msg_send_index,p_msg);
     if(a5133_demo_msg_send_index == 0)
         a5133_demo_msg_send_index = 1;
     else
         a5133_demo_msg_send_index = 0;
 }
-#endif
+
+
 void startup_post_init_task(void)
 {
     uint8_t day = 0;
index 83363cd..bd7f3db 100644 (file)
@@ -241,12 +241,7 @@ uint8_t uapi_get_cywee_static_state(void);
 void uapi_get_a5133_rxdata(uint8_t *databuf,uint8_t len);
 uint16_t CRC16_XMODEM(uint8_t *bytes,uint16_t length);
 errcode_t uapi_a5133_set_send_data(uint8_t *senddata,uint8_t datalen);
-
-
-
-#ifdef A5133_DEMO_SERVER
 void a5133_demo_msg_change_callback(void);
-#endif
 
 #include "custom_utilscpp.h"