支付宝代码合并 1755/1
authorluozheng <1732036298@qq.com>
Fri, 16 May 2025 06:50:06 +0000 (14:50 +0800)
committerluozheng <1732036298@qq.com>
Fri, 16 May 2025 06:50:06 +0000 (14:50 +0800)
39 files changed:
code/sdk/application/wearable/fd230/nativeabilityfwk/include/Ability.h
code/sdk/application/wearable/fd230/nativeabilityfwk/src/Ability.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayBindAni.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayC.h [new file with mode: 0644]
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayExitBind.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayList/AlipayListItem.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayList/AlipayListItemView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayList/AlipayListView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayMainView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayModel.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayPresenter.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipaySetting.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayTrans/AlipayTransListItemView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayUnbind.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayBindAni.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayBindRes.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayExitBind.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayList/AlipayListItemView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayList/AlipayListView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayMainView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayModel.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayPayCode.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipaySetting.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayTrans/AlipayTransCode.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayTrans/AlipayTransListItemView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayTrans/AlipayTransListView.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayUnbind.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/src/AlipayUnbindFinish.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/applist/src/ApplistPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/key/src/KeyInputListener.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/settings/src/SettingPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/settings/src/SettingView.cpp
code/sdk/vendor/alipay_sdk/alipay_sec_sdk_v3.0.0/lib/rv70_llvm/fwk/device_certificate/lib/libfwk_device_certificate_rv70_llvm.a
code/sdk/vendor/alipay_sdk/alipay_sec_sdk_v3.0.0/soc/se/hsec/hsc32i1/hs_private.c
code/sdk/vendor/alipay_sdk/alipay_sec_sdk_v3.0.0/soc/se/hsec/hsc32i1/hs_private.h
code/sdk/vendor/alipay_sdk/alipay_sec_sdk_v3.0.0/soc/se/hsec/vendor_ssp.c

index 7231902..cfa5dd9 100644 (file)
@@ -80,13 +80,13 @@ public:
     /// @param transitionId 切换的动画类型
     /// @param priority 切换优先级
     void EnterSlice(uint16_t sliceId,const TransitionType transitionId = TransitionType::TRANSITION_INVALID,
-        const uint16_t priority = gSliceDefaultPriority) {
+        const uint16_t priority = gSliceDefaultPriority,bool enableSlideBack = false) {
         // 获取当前SliceID
         uint16_t curSliceId = GetCurSliceId();
         if (curSliceId != defaultSliceId_) { // 假定defaultSliceId_是“主页”或启动Slice的ID
             backStack_.push(curSliceId);
         }
-        ChangeSlice(sliceId,transitionId,priority); // 切换到新的Slice
+        ChangeSlice(sliceId,transitionId,priority,enableSlideBack); // 切换到新的Slice
     }
 
     uint16_t GettopSliceId(void) {
@@ -103,19 +103,19 @@ public:
     /// @param transitionId 切换的动画类型
     /// @param priority 切换优先级
     bool Back(const TransitionType transitionId = TransitionType::TRANSITION_INVALID,
-        const uint16_t priority = gSliceDefaultPriority) { 
+        const uint16_t priority = gSliceDefaultPriority,bool enableSlideBack = false) { 
          
         if (!backStack_.empty()) {
             uint16_t preSlice = backStack_.top();
             backStack_.pop();
-            ChangeSlice(preSlice,transitionId,priority);
+            ChangeSlice(preSlice,transitionId,priority,enableSlideBack);
             return true;
         }
         else
         {
             backStack_.push(defaultSliceId_); // 将默认主界面的 ID 推入栈中
             // 退回到defaultSliceId_
-            ChangeSlice(defaultSliceId_, transitionId, priority);
+            ChangeSlice(defaultSliceId_, transitionId, priority,enableSlideBack);
             return false; // 返回false表示无前一个slice,退回到默认slice
         }
     }
index 96368d1..ff8ce55 100644 (file)
@@ -123,6 +123,8 @@ void Ability::ChangeSlice(const uint16_t targetSliceId, TransitionType type,
     }
     FreeElement(elementName);
 #endif
+    #ifdef FD230
+    // showsStackSliceId();
     if (targetSliceId == VIEW_MAIN)
     {
         ClearSliceIdStack(); /*凡是回到主界面都要清空栈*/
@@ -139,6 +141,7 @@ void Ability::ChangeSlice(const uint16_t targetSliceId, TransitionType type,
         if(id!=VIEW_INCOMING_CALL && id!=VIEW_BLUETOOTH_EARPHONE)
         make_phone_push(id);
     }
+    #endif
     TransitionTarget target;
     target.sliceInfo = targetSliceId | (priority << 16);
     bool runImmed = PageTransitionMgr::GetInstance().BeginTransition(TransitionCaller::CHANGE_SLICE, target,
index ea2cc58..d8c0cf6 100644 (file)
@@ -30,6 +30,7 @@ private:
     UILabel *alipayLabel { nullptr };\r
     UIImageAnimatorView *alipayImageAni { nullptr };\r
     ImageAnimatorInfo searchImageInfo[ALIPAY_BIND_SEARCH_IMAGE_NUM];\r
+    UIImageView *alipaylogImage { nullptr };\r
 };\r
 }\r
 #endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayC.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/alipay/include/AlipayC.h
new file mode 100644 (file)
index 0000000..1d0cb6b
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef ALIPAY_C_H
+#define ALIPAY_C_H
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+
+bool is_Alipay_bind(void);
+
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+
+#endif
\ No newline at end of file
index 4b9321a..95ae61c 100644 (file)
@@ -27,6 +27,7 @@ private:
     AlipayPresenter *presenter_;\r
     UILabel *alipayLabel[ALIPAY_SET_TWO] { nullptr };\r
     UILabelButton *alipayButton[ALIPAY_SET_TWO] { nullptr };\r
+    UIImageView *AttentionImage { nullptr };\r
 };\r
 }\r
 #endif
\ No newline at end of file
index aef570a..4782ae0 100644 (file)
@@ -15,10 +15,13 @@ namespace OHOS {
 /*
  * alipayList id.
  */
+#define SUPPORT_ALIPAY_TRANS 1
 typedef enum : uint16_t {
     // alipayList item index
     ALIPAY_LIST_ITEM_PAY,
+#if SUPPORT_ALIPAY_TRANS
     ALIPAY_LIST_ITEM_TRANS,
+#endif
     ALIPAY_LIST_ITEM_SETTING,
     ALIPAY_LIST_ITEM_HELP,
     ALIPAY_LIST_ITEM_MAX
index ef9dd02..60442a8 100644 (file)
@@ -37,7 +37,7 @@ private:
     AlipayPresenter *presenter_;
     AlipayListAdapter *listAdapter { nullptr };
     UIList *contentList { nullptr };
-    AlipayListItem alipayLists[ALIPAY_LIST_ITEM_MAX];
+    AlipayListItem alipayLists[ALIPAY_LIST_ITEM_MAX + 1] = {ALIPAY_LIST_ITEM_MAX,nullptr,nullptr,nullptr,false}; //加1是为了给标题一个位置(UI优化)
 };
 }
 #endif
\ No newline at end of file
index 325c470..a5ffbd8 100644 (file)
@@ -44,6 +44,7 @@ public:
     static AlipayMainView *GetInstance(void);\r
     void OnStart() override;\r
     void DropView(UIView &view);\r
+    void DropView(uint8_t type);\r
     void SwitchView(UIView &view);\r
 \r
     void ChangeView(int16 hideView, int16 showView);\r
index 9cbbaf2..99e22e4 100644 (file)
@@ -23,6 +23,7 @@ void AlipaySwitchTimerCallBackProc(void *argument);
 void AlipayMsgCallBack(uint32_t msgId, uint32_t actionRes);\r
 \r
 #define ALIPAY_BIND_STATUS_TIMER_LENGTH 2000\r
+#define ALIPAY_BIND_STATUS_DISCONNECT 3000\r
 #define ALIPAY_GET_BIND_STR_MAX_LENGTH 256\r
 #define ALIPAY_GET_PAY_STR_MAX_LENGTH 20\r
 #define ALIPAY_GET_AID_STR_MAX_LENGTH 256\r
@@ -57,6 +58,8 @@ public:
     int32_t AlipayGetIdName(uint8_t *idStr);\r
     int32_t AlipayGetAidCode(int8_t *aidStr);\r
     void AlipayUnbind(void);\r
+    bool ble_disconnect_AlipayStartBind(void);\r
+    void AlipayStopdisconnecTimer(void);\r
     bool AlipayStartBind(void);\r
     bool AlipayFinishBind(void);\r
     bool AlipayStartSwitchTimer(uint16_t time);\r
@@ -89,8 +92,13 @@ public:
     uint8_t* AlipayGetTransCode(void);\r
     uint32_t AlipayGetTransCodeLen(void);\r
     char* AlipayGetCardTitle(void);\r
+\r
+    void AlipayScreenControl(bool turnOnFlag);\r
+    void delete_all_files_in_folder(const char *folder_path);\r
 private:\r
     osTimerId_t bindTimerId = nullptr;\r
+    osTimerId_t ble_disconnect_bindTimerId = nullptr;\r
+\r
     osTimerId_t switchTimerId = nullptr;\r
     osTimerId_t transTimerId = nullptr;\r
     int16 alipayInterLis;\r
index 092ee45..1c038b9 100644 (file)
@@ -14,6 +14,9 @@
 #include "color.h"\r
 #include "AlipayModel.h"\r
 \r
+#include "KeyInputListener.h"\r
+#include "common/key_code.h"\r
+\r
 namespace OHOS {\r
 constexpr char *ALIPAY_LIST_PAY_BUTTON = (char *)"alipaylistpay";\r
 constexpr char *ALIPAY_LIST_TRANS_BUTTON = (char *)"alipaylisttrans";\r
@@ -61,30 +64,30 @@ typedef enum {
     ALIPAY_PAY_VIEW,\r
 \r
     ALIPAY_PAY_BARCODE_VIEW,\r
-    ALIPAY_TRANS_VIEW,\r
+    ALIPAY_TRANS_VIEW,                   //具体的乘车码支付页面\r
     ALIPAY_SETTING_VIEW,\r
     ALIPAY_HELP_VIEW,\r
     ALIPAY_SETTING_UNBIND_VIEW,\r
 \r
     ALIPAY_SETTING_FINISH_VIEW,\r
     ALIPAY_GET_BIND_FAILURE_VIEW,\r
-    ALIPAY_TRANS_LIST_VIEW,\r
+    ALIPAY_TRANS_LIST_VIEW,              //交通卡列表视图\r
     ALIPAY_TRANS_ENABLE_VIEW,\r
     ALIPAY_TRANS_TIPS_VIEW,\r
 \r
-    ALIPAY_TRANS_RES_VIEW,\r
-    ALIPAY_GET_TRANS_LIST_VIEW,\r
-    ALIPAY_TRANS_ANI_VIEW,\r
+    ALIPAY_TRANS_RES_VIEW,               //提示网络异常视图\r
+    ALIPAY_GET_TRANS_LIST_VIEW,          //获取乘车码列表视图\r
+    ALIPAY_TRANS_ANI_VIEW,               //获取乘车码列表动画视图:加载动画\r
 \r
     ALIPAY_INTERFACES_MAX\r
 } alipayInterfacesId;\r
 \r
 typedef enum {\r
-    ALIPAY_TRANS_TIPS_UNKNOW = 0,\r
-    ALIPAY_TRANS_TIPS_TO_MUCH,\r
-    ALIPAY_TRANS_TIPS_SECURE,\r
-    ALIPAY_TRANS_TIPS_LIST_UNKNOW,\r
-    ALIPAY_TRANS_TIPS_NOT_SUPPORT,\r
+    ALIPAY_TRANS_TIPS_UNKNOW = 0,       //未知错误_具体错误码,请联系设备厂商解决\r
+    ALIPAY_TRANS_TIPS_TO_MUCH,          //开通的乘车码数量太多,清在手机支付宝-出行-管理中,管理后再用\r
+    ALIPAY_TRANS_TIPS_SECURE,           //存在安全风险,12小时内不可用,请切换到手机侧使用\r
+    ALIPAY_TRANS_TIPS_LIST_UNKNOW,      //未知错误_具体错误码,请联系设备厂商解决\r
+    ALIPAY_TRANS_TIPS_NOT_SUPPORT,      //暂不支持,请切换到手机侧使用\r
 } alipayTransTipsId;\r
 \r
 typedef enum {\r
@@ -93,13 +96,13 @@ typedef enum {
 } alipayTransResId;\r
 \r
 typedef enum {\r
-    ALIPAY_TRANS_GET_LIST_FIRST = 0,\r
+    ALIPAY_TRANS_GET_LIST_FIRST = 0,        //首次获取交通卡交易列表索引\r
     ALIPAY_TRANS_GET_LIST_CLICK_DETAIL,\r
     ALIPAY_TRANS_GET_LIST_CODE_DETAIL,\r
 } alipayTransGetListId;\r
 \r
 class AlipayMainView;\r
-class AlipayPresenter : public Presenter<AlipayMainView>,\r
+class AlipayPresenter : public Presenter<AlipayMainView>,public RootView::OnKeyActListener,\r
     public UIView::OnClickListener,\r
     public UIView::OnDragListener {\r
 public:\r
@@ -140,6 +143,7 @@ public:
     ColorType CyanColor(void);\r
     bool OnClick(UIView &view, const ClickEvent &event) override;\r
     bool OnDrag(UIView &view, const DragEvent &event) override;\r
+    bool OnKeyAct(UIView &view, const KeyEvent &event) override;\r
     bool ClickFuncId(UIView &view);\r
     int32_t AlipayGetPayCode(uint8_t *payStr);\r
     int32_t AlipayGetNickName(uint8_t *nickName);\r
index deb5a2d..0f9d314 100644 (file)
@@ -25,10 +25,10 @@ private:
     bool AlipayInitButton();\r
     bool AlipayInitLabel(void);\r
     AlipayPresenter *presenter_;\r
-    UILabel *labelTitle { nullptr };\r
-    UILabel *labelName { nullptr };\r
-    UILabel *labelId { nullptr };\r
-    UILabelButton *buttonSetting { nullptr };\r
+    UILabel *labelTitle { nullptr };          // 标题:设置\r
+    UILabel *labelName { nullptr };           // 用户名称\r
+    UILabel *labelId { nullptr };             \r
+    UILabelButton *buttonSetting { nullptr }; // 解除绑定按钮\r
 };\r
 }\r
 #endif
\ No newline at end of file
index 183b806..8118d59 100644 (file)
@@ -27,6 +27,7 @@ private:
     AlipayPresenter *presenter_;\r
     UILabel *alipayLabel[ALIPAY_SET_TWO] { nullptr };\r
     UILabelButton *alipayButton[ALIPAY_SET_TWO] { nullptr };\r
+    UIImageView *AttentionImage { nullptr };\r
 };\r
 }\r
 #endif
\ No newline at end of file
index 4574cb9..b5da85e 100644 (file)
 #include "graphic_service.h"\r
 \r
 namespace OHOS {\r
-static const int16 ANILABEL_X_FIRST = 151;\r
-static const int16 ANILABEL_Y_FIRST = 257;\r
-static const int16 ANILABEL_WIDTH_FIRST = 151;\r
-static const int16 ANILABEL_HEIGHT_FIRST = 48;\r
+static const int16 ANILABEL_X_FIRST = 133;\r
+static const int16 ANILABEL_Y_FIRST = 328;\r
+static const int16 ANILABEL_WIDTH_FIRST = 200;\r
+static const int16 ANILABEL_HEIGHT_FIRST = 60;\r
 static const char *ANILABEL_TEXT_FIRST = (char *)"正在绑定";\r
-static const int16 ANILABEL_FONT_FIRST = 38;\r
+static const int16 ANILABEL_FONT_FIRST = 30;\r
+\r
+static constexpr const char *PNG_1_PATH = "user/res/alipay/1.bin";\r
+static constexpr const char *PNG_2_PATH = "user/res/alipay/2.bin";\r
+static constexpr const char *PNG_3_PATH = "user/res/alipay/3.bin";\r
+static constexpr const char *PNG_4_PATH = "user/res/alipay/4.bin";\r
+static constexpr const char *PNG_5_PATH = "user/res/alipay/5.bin";\r
+static constexpr const char *PNG_6_PATH = "user/res/alipay/6.bin";\r
+static constexpr const char *PNG_7_PATH = "user/res/alipay/7.bin";\r
+static constexpr const char *PNG_8_PATH = "user/res/alipay/8.bin";\r
+\r
+static constexpr const char *PNG_LOG_PATH = "user/res/alipay/alipaylog.bin";\r
 \r
 const char *searchImagePath[ALIPAY_BIND_SEARCH_IMAGE_NUM] = {\r
-    PNG_A019_080_IMAGE_PATH,\r
-    PNG_A019_081_IMAGE_PATH,\r
-    PNG_A019_082_IMAGE_PATH,\r
-    PNG_A019_083_IMAGE_PATH,\r
-    PNG_A019_084_IMAGE_PATH,\r
-    PNG_A019_085_IMAGE_PATH,\r
-    PNG_A019_086_IMAGE_PATH,\r
-    PNG_A019_087_IMAGE_PATH,\r
+    PNG_1_PATH,\r
+    PNG_2_PATH,\r
+    PNG_3_PATH,\r
+    PNG_4_PATH,\r
+    PNG_5_PATH,\r
+    PNG_6_PATH,\r
+    PNG_7_PATH,\r
+    PNG_8_PATH,\r
 };\r
 \r
-static const int16 ALIPAY_BIND_IMAGE_X = 162;\r
-static const int16 ALIPAY_BIND_IMAGE_Y = 112;\r
-static const int16 ALIPAY_BIND_IMAGE_WIDTH = 128;\r
-static const int16 ALIPAY_BIND_IMAGE_HEIGHT = 128;\r
+static const int16 ALIPAY_BIND_IMAGE_X = 149;\r
+static const int16 ALIPAY_BIND_IMAGE_Y = 358;\r
+static const int16 ALIPAY_BIND_IMAGE_WIDTH = 168;\r
+static const int16 ALIPAY_BIND_IMAGE_HEIGHT = 40;\r
 \r
-static const int16 ALIPAY_BIND_IMAGE_DELAY = 200;\r
+static const int16 ALIPAY_BIND_IMAGE_DELAY = 100;\r
 \r
-static const int16 RES_IMAGE_X = 162;\r
-static const int16 RES_IMAGE_Y = 112;\r
-static const int16 RES_IMAGE_WIDTH = 128;\r
-static const int16 RES_IMAGE_HEIGHT = 128;\r
+static const int16 RES_IMAGE_X = 149;\r
+static const int16 RES_IMAGE_Y = 358;\r
+static const int16 RES_IMAGE_WIDTH = 168;\r
+static const int16 RES_IMAGE_HEIGHT = 40;\r
 \r
 AlipayBindAni::AlipayBindAni(AlipayPresenter *presenter)\r
 {\r
@@ -63,6 +74,12 @@ AlipayBindAni::~AlipayBindAni()
         delete alipayImageAni;\r
         alipayImageAni = nullptr;\r
     }\r
+    if (alipaylogImage != nullptr) {\r
+        delete alipaylogImage;\r
+        alipaylogImage = nullptr;\r
+    }\r
+\r
+    \r
 }\r
 \r
 bool AlipayBindAni::AlipayInitLabel(void)\r
@@ -77,7 +94,7 @@ bool AlipayBindAni::AlipayInitLabel(void)
     alipayLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, ANILABEL_FONT_FIRST);\r
     alipayLabel->SetStyle(STYLE_TEXT_FONT, ANILABEL_FONT_FIRST);\r
     alipayLabel->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
     Add(alipayLabel);\r
     return true;\r
 }\r
@@ -98,14 +115,23 @@ bool AlipayBindAni::AlipayInitImageAni(void)
         searchImageInfo[i].height = ALIPAY_BIND_IMAGE_HEIGHT;\r
     }\r
 \r
-    alipayImageAni->SetPosition(RES_IMAGE_X, RES_IMAGE_Y, RES_IMAGE_WIDTH, RES_IMAGE_HEIGHT);\r
+    alipayImageAni->SetPosition(ALIPAY_BIND_IMAGE_X, ALIPAY_BIND_IMAGE_Y, ALIPAY_BIND_IMAGE_WIDTH, ALIPAY_BIND_IMAGE_HEIGHT);\r
     alipayImageAni->SetImageAnimatorSrc(searchImageInfo, ALIPAY_BIND_SEARCH_IMAGE_NUM, ALIPAY_BIND_IMAGE_DELAY);\r
     alipayImageAni->SetRepeat(true);\r
     alipayImageAni->SetAutoEnable(false);\r
-    alipayImageAni->SetResizeMode(UIImageView::FILL);\r
+    //alipayImageAni->SetResizeMode(UIImageView::FILL);\r
     Add(alipayImageAni);\r
-\r
     alipayImageAni->Start();\r
+\r
+    alipaylogImage = new UIImageView();\r
+    if (alipaylogImage == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::AlipayInitImage new alipayImage fail");\r
+        return false;\r
+    }\r
+    alipaylogImage->SetPosition(143, 130, 180, 180);\r
+    alipaylogImage->SetSrc(PNG_LOG_PATH);\r
+    Add(alipaylogImage);\r
+\r
     return true;\r
 }\r
 \r
index 0a33198..acde3eb 100644 (file)
 #include "AlipayModel.h"\r
 \r
 namespace OHOS {\r
-static const int16 EXIT_LABEL_X_FIRST = 151;\r
-static const int16 EXIT_LABEL_Y_FIRST = 257;\r
-static const int16 EXIT_LABEL_WIDTH_FIRST = 151;\r
-static const int16 EXIT_LABEL_HEIGHT_FIRST = 48;\r
+static const int16 EXIT_LABEL_X_FIRST = 83;\r
+static const int16 EXIT_LABEL_Y_FIRST = 350;\r
+\r
+static const int16 EXIT_LABEL_WIDTH_FIRST = 300;\r
+static const int16 EXIT_LABEL_HEIGHT_FIRST = 50;\r
 static const char *EXIT_LABEL_TEXT_FIRST = (char *)"绑定失败";\r
-static const int16 EXIT_LABEL_FONT_FIRST = 38;\r
+static const int16 EXIT_LABEL_FONT_FIRST = 35;\r
 \r
 static const char *EXIT_LABEL_TEXT_SEC = (char *)"绑定成功";\r
 \r
-static const int16 RES_IMAGE_X = 161;\r
-static const int16 RES_IMAGE_Y = 110;\r
-static const int16 RES_IMAGE_WIDTH = 135;\r
-static const int16 RES_IMAGE_HEIGHT = 135;\r
+static const int16 RES_IMAGE_X = 153;\r
+static const int16 RES_IMAGE_Y = 140;\r
+static const int16 RES_IMAGE_WIDTH = 160;\r
+static const int16 RES_IMAGE_HEIGHT = 160;\r
 \r
 AlipayBindRes::AlipayBindRes(AlipayPresenter *presenter)\r
 {\r
@@ -61,10 +62,10 @@ void AlipayBindRes::AlipayRefreshBindRes(void)
     // alipayLabel->Set\r
     if (presenter_->AlipayGetBindFlag()) {\r
         alipayLabel->SetText(EXIT_LABEL_TEXT_SEC);\r
-        alipayImage->SetSrc(PNG_ALIPAY_BIND_SUCCESS);\r
+        alipayImage->SetSrc(PNG_ALIPAY_YSE_ICON);\r
     } else {\r
         alipayLabel->SetText(EXIT_LABEL_TEXT_FIRST);\r
-        alipayImage->SetSrc(PNG_ALIPAY_BIND_FAILURE);\r
+        alipayImage->SetSrc(PNG_ALIPAY_NO_ICON);\r
     }\r
     alipayLabel->Invalidate();\r
     alipayImage->Invalidate();\r
@@ -82,9 +83,9 @@ bool AlipayBindRes::AlipayInitLabel(const char *resStr)
     alipayLabel->SetPosition(EXIT_LABEL_X_FIRST, EXIT_LABEL_Y_FIRST, EXIT_LABEL_WIDTH_FIRST, EXIT_LABEL_HEIGHT_FIRST);\r
     alipayLabel->SetText(resStr);\r
     alipayLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_FIRST);\r
-    alipayLabel->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
-    alipayLabel->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+    //alipayLabel->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
+    alipayLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+    alipayLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
 \r
     Add(alipayLabel);\r
 \r
@@ -103,7 +104,7 @@ bool AlipayBindRes::AlipayInitImage(const char *imageSrc)
 \r
     // Set additional property\r
     alipayImage->SetAutoEnable(false);\r
-    alipayImage->SetResizeMode(UIImageView::FILL);\r
+    //alipayImage->SetResizeMode(UIImageView::FILL);\r
 \r
     Add(alipayImage);\r
     return true;\r
@@ -122,7 +123,7 @@ bool AlipayBindRes::InitView()
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::InitView AlipayInitLabel() false");\r
         return false;\r
     }\r
-    if (!AlipayInitImage(PNG_ALIPAY_BIND_SUCCESS)) {\r
+    if (!AlipayInitImage(PNG_ALIPAY_YSE_ICON)) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindRes::InitView AlipayInitImage() false");\r
         return false;\r
     }\r
index edf88e3..c24d184 100644 (file)
 #include "AlipayExitBind.h"\r
 \r
 namespace OHOS {\r
-static const int16 EXIT_LABEL_X_FIRST = 132;\r
-static const int16 EXIT_LABEL_X_SEC = 0;\r
-static const int16 EXIT_LABEL_WIDTH_FIRST = 189;\r
-static const int16 EXIT_LABEL_HEIGHT_FIRST = 48;\r
-\r
-static const int16 EXIT_LABEL_Y_FIRST = 57;\r
-static const int16 EXIT_LABEL_Y_SECOND = 154;\r
-static const int16 EXIT_LABEL_WIDTH_SEC = 454;\r
-static const int16 EXIT_LABEL_HEIGHT_SEC = 83;\r
-static const int16 EXIT_LABEL_FONT_FIRST = 38;\r
+\r
+static const int16 EXIT_LABEL_WIDTH_FIRST = 300;\r
+static const int16 EXIT_LABEL_WIDTH_SEC = 360;\r
+\r
+static const int16 EXIT_LABEL_HEIGHT_FIRST = 35;\r
+static const int16 EXIT_LABEL_HEIGHT_SEC = 70;\r
+\r
+static const int16 EXIT_LABEL_X_FIRST = (HORIZONTAL_RESOLUTION - EXIT_LABEL_WIDTH_FIRST) / 2;\r
+static const int16 EXIT_LABEL_X_SEC = (HORIZONTAL_RESOLUTION - EXIT_LABEL_WIDTH_SEC) / 2;\r
+\r
+static const int16 EXIT_LABEL_Y_FIRST = 50;\r
+static const int16 EXIT_LABEL_Y_SECOND = 222;\r
+\r
+static const int16 EXIT_LABEL_FONT_FIRST = 30;\r
 static const int16 EXIT_LABEL_FONT_SEC = 30;\r
 \r
 static const char *EXIT_LABEL_TEXT_FIRST = (char *)"未完成绑定";\r
-static const char *EXIT_LABEL_TEXT_SECOND = (char *)"当前未完成绑定,退出在进来\n需要重新扫码绑定";\r
+static const char *EXIT_LABEL_TEXT_SECOND = (char *)"当前未完成绑定,退出在进来需要重新扫码绑定";\r
 \r
-static const int16 EXIT_BUTTON_EXIT_X = 50;\r
-static const int16 EXIT_BUTTON_EXIT_Y = 312;\r
+static const int16 EXIT_BUTTON_EXIT_X = 58;\r
+static const int16 EXIT_BUTTON_EXIT_Y = 320;\r
 \r
-static const int16 EXIT_BUTTON_BIND_X = 233;\r
-static const int16 EXIT_BUTTON_BIND_Y = 312;\r
+static const int16 EXIT_BUTTON_BIND_X = 238;\r
+static const int16 EXIT_BUTTON_BIND_Y = 320;\r
 \r
 static const char *EXIT_BUTTON_TEXT_FIRST = (char *)"退出";\r
 static const char *EXIT_BUTTON_TEXT_SECOND = (char *)"去绑定";\r
 \r
-static const int16 EXIT_BUTTON_WIDTH = 169;\r
-static const int16 EXIT_BUTTON_HEIGHT = 73;\r
-static const int16 EXIT_BUTTON_FONT = 38;\r
+static const int16 EXIT_BUTTON_WIDTH = 170;\r
+static const int16 EXIT_BUTTON_HEIGHT = 90;\r
+static const int16 EXIT_BUTTON_FONT = 26;\r
 \r
 AlipayExitBind::AlipayExitBind(AlipayPresenter *presenter)\r
 {\r
@@ -62,6 +66,11 @@ AlipayExitBind::~AlipayExitBind()
             alipayButton[buttonNum] = nullptr;\r
         }\r
     }\r
+    if(AttentionImage)\r
+    {\r
+        delete AttentionImage;\r
+        AttentionImage =nullptr;\r
+    }\r
 }\r
 \r
 bool AlipayExitBind::AlipayInitLabel()\r
@@ -78,7 +87,7 @@ bool AlipayExitBind::AlipayInitLabel()
     alipayLabel[ALIPAY_SET_ZERO]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_FIRST);\r
     alipayLabel[ALIPAY_SET_ZERO]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
     alipayLabel[ALIPAY_SET_ZERO]->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    alipayLabel[ALIPAY_SET_ZERO]->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
 \r
     Add(alipayLabel[ALIPAY_SET_ZERO]);\r
 \r
@@ -91,12 +100,23 @@ bool AlipayExitBind::AlipayInitLabel()
         EXIT_LABEL_HEIGHT_SEC);\r
     alipayLabel[ALIPAY_SET_ONE]->SetText(EXIT_LABEL_TEXT_SECOND);\r
     alipayLabel[ALIPAY_SET_ONE]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_SEC);\r
-    alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_LINE_SPACE, 6);\r
-    alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_SEC);\r
+    //alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_LINE_SPACE, 12);\r
+    //alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_SEC);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xFF));\r
     alipayLabel[ALIPAY_SET_ONE]->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    alipayLabel[ALIPAY_SET_ONE]->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
     Add(alipayLabel[ALIPAY_SET_ONE]);\r
 \r
+    AttentionImage=new UIImageView();\r
+    if (AttentionImage == nullptr)\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemFactoryResetView::new FactoryResetImage fail!");\r
+        return false;\r
+    }\r
+    AttentionImage->SetPosition(193, 110);\r
+    AttentionImage->SetSrc(PNG_ATTENTION_IMAGE);\r
+    Add(AttentionImage);\r
+\r
     return true;\r
 }\r
 \r
@@ -111,11 +131,12 @@ bool AlipayExitBind::InitSimilarButton(int16 num, int16 alipayX, int16 alipayY,
     int64_t backColor = 0;\r
 \r
     if (num == 0) {\r
-        backColor = 0xff4a83bf;\r
-        alipayButton[num]->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff));\r
-        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+        backColor = 0xff191919;\r
+        //alipayButton[num]->SetTextColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0x19));\r
+        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
     } else if (num == 1) {\r
-        backColor = 0xff0b1928;\r
+        backColor = 0xff0176ff;\r
+        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff0176ff);\r
     }\r
     alipayButton[num]->SetPosition(alipayX, alipayY, EXIT_BUTTON_WIDTH, EXIT_BUTTON_HEIGHT);\r
     alipayButton[num]->SetText(buttonStr);\r
index 4cd238d..c772264 100644 (file)
@@ -9,16 +9,24 @@
 #include "AlipayListItemView.h"
 
 namespace OHOS {
-static constexpr int16 ALIPAY_LIST_ICON_X = 20;
-static constexpr int16 NUM_22 = 22;
-static constexpr int16_t ALIPAY_LIST_ICON_WIDTH = 64;
-static constexpr int16_t ALIPAY_LIST_ICON_HEIGHT = 64;
-static constexpr int16_t ALIPAY_LIST_ITEM_BUTTON_HEIGHT = 100;
-static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_WIDTH = 122;
-static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_HEIGHT = 100;
-static constexpr int16_t ALIPAY_LIST_ITEM_FONT_SIZE = 40;
-static constexpr int16_t ALIPAY_LISTS_RESIZE_SIZE = 100;
-static constexpr int16_t ALIPAY_LIST_SICON_Y = 15;
+static constexpr int16_t ALIPAY_LIST_ITEM_BUTTON_HEIGHT = 120;
+
+static constexpr int16 ALIPAY_LIST_BACK_X = 43;
+static constexpr int16 ALIPAY_LIST_BACK_Y = 0;
+static constexpr int16_t ALIPAY_LIST_BACK_WIDTH = 380;
+static constexpr int16_t ALIPAY_LIST_BACK_HEIGHT = 100;
+
+static constexpr int16 ALIPAY_LIST_ICON_X = 19 + ALIPAY_LIST_BACK_X;
+static constexpr int16 ALIPAY_LIST_ICON_Y = 19;
+static constexpr int16_t ALIPAY_LIST_ICON_WIDTH = 62;
+static constexpr int16_t ALIPAY_LIST_ICON_HEIGHT = 62;
+
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_X = 115 + ALIPAY_LIST_BACK_X;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_Y = 33;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_WIDTH = 180;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_HEIGHT = 35;
+static constexpr int16_t ALIPAY_LIST_ITEM_FONT_SIZE = 30;
+
 static constexpr int16 NUMS_2 = 2;
 static constexpr int16 NUMS_50 = 50;
 
@@ -31,6 +39,7 @@ AlipayListItemView::AlipayListItemView()
     SetTouchable(true);
     SetUpChild();
 
+    Add(&back);
     Add(&sIcon);
     Add(&sLabel);
     Add(&sNextImage);
@@ -38,6 +47,7 @@ AlipayListItemView::AlipayListItemView()
 
 AlipayListItemView::~AlipayListItemView()
 {
+    Remove(&back);
     Remove(&sIcon);
     Remove(&sLabel);
     Remove(&sNextImage);
@@ -50,30 +60,60 @@ void AlipayListItemView::SetItemInfo(const AlipayListItem &itemInfo)
     sIcon.SetSrc(itemInfo.icon);
     sLabel.SetText(itemInfo.label);
     sNextImage.SetVisible(itemInfo.hasSecondMenu);
+    if(!sItemInfo.hasSecondMenu)
+    {
+        back.SetVisible(false);
+        sIcon.SetVisible(false);
+        sNextImage.SetVisible(false);
+        sLabel.SetPosition((HORIZONTAL_RESOLUTION - ALIPAY_LIST_ITEM_LABEL_WIDTH) / NUMS_2, ALIPAY_LIST_ITEM_LABEL_Y + 17);
+        sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+        SetHeight(120);
+    }
+    else
+    {
+        back.SetVisible(true);
+        sIcon.SetVisible(true);
+        sNextImage.SetVisible(true);
+        sLabel.SetPosition(ALIPAY_LIST_ITEM_LABEL_X, ALIPAY_LIST_ITEM_LABEL_Y);
+        sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+        if(sItemInfo.index == ALIPAY_LIST_ITEM_HELP)
+        {
+            SetHeight(180);
+        }
+        else
+        {
+            SetHeight(120);
+        }
+    }
 }
 
 void AlipayListItemView::SetUpChild()
 {
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListItemView::SetUpChild()");
-    sIcon.SetPosition(ALIPAY_LIST_ICON_X, ALIPAY_LIST_SICON_Y);
+    sIcon.SetPosition(ALIPAY_LIST_ICON_X, ALIPAY_LIST_ICON_Y);
     sIcon.Resize(ALIPAY_LIST_ICON_WIDTH, ALIPAY_LIST_ICON_HEIGHT);
-
     sIcon.SetAutoEnable(false);
-    sIcon.SetResizeMode(UIImageView::FILL);
+    sIcon.SetResizeMode(UIImageView::CENTER);
     sIcon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
 
-    sLabel.SetPosition(ALIPAY_LIST_ITEM_LABEL_WIDTH, 0);
+    sLabel.SetPosition(ALIPAY_LIST_ITEM_LABEL_X, ALIPAY_LIST_ITEM_LABEL_Y);
     sLabel.Resize(ALIPAY_LIST_ITEM_LABEL_WIDTH, ALIPAY_LIST_ITEM_LABEL_HEIGHT);
     sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, ALIPAY_LIST_ITEM_FONT_SIZE);
-    sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-    sLabel.SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
-    sLabel.SetStyle(STYLE_TEXT_COLOR, Color::White().full);
-    sLabel.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
-    sLabel.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+    sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    sLabel.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+    // sLabel.SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
+    // sLabel.SetStyle(STYLE_TEXT_COLOR, Color::White().full);
+    // sLabel.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    // sLabel.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
 
     sNextImage.SetSrc(PNG_SETTING_NEXT_IMAGE);
     sNextImage.SetPosition(LA_HORIZONTAL_RESOLUTION - NUMS_50, (SETTING_ITEM_HEIGHT - sNextImage.GetHeight()) / NUMS_2);
     sNextImage.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+    back.SetPosition(ALIPAY_LIST_BACK_X, ALIPAY_LIST_BACK_Y, ALIPAY_LIST_BACK_WIDTH, ALIPAY_LIST_BACK_HEIGHT);
+    back.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+    back.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+    back.SetStyle(STYLE_BORDER_RADIUS, 100);
 }
 
 }
index e96e470..91be991 100644 (file)
@@ -6,8 +6,10 @@
  */
 
 #include <string>
-#include "AlipayListView.h"
-#include "AlipayListItem.h"
+// #include "AlipayListView.h"
+// #include "AlipayListItem.h"
+#include "alipay/include/AlipayList/AlipayListView.h"
+#include "alipay/include/AlipayList/AlipayListItem.h"
 #include "cmsis_os2.h"
 
 namespace OHOS {
@@ -53,9 +55,11 @@ bool AlipayList::AlipayInitList()
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayList::OnStart::contentList is nullptr");
         return false;
     }
-    contentList->SetPosition(ALIPAY_LIST_POSITION_X, ALIPAY_LIST_POSITION_Y);
-    contentList->Resize(HORIZONTAL_RESOLUTION - ALIPAY_LIST_POSITION_X, VERTICAL_RESOLUTION - ALIPAY_LIST_POSITION_Y);
-    contentList->SetScrollBlankSize(ALIPAY_LIST_SCROLLBLANKSIZE);
+    // contentList->SetPosition(ALIPAY_LIST_POSITION_X, ALIPAY_LIST_POSITION_Y);
+    // contentList->Resize(HORIZONTAL_RESOLUTION - ALIPAY_LIST_POSITION_X, VERTICAL_RESOLUTION - ALIPAY_LIST_POSITION_Y);
+    contentList->SetPosition(0, 0);
+    contentList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+    // contentList->SetScrollBlankSize(ALIPAY_LIST_SCROLLBLANKSIZE);
     contentList->SetSelectPosition(ALIPAY_LIST_POSITION_Y);
     contentList->SetDraggable(true);
     contentList->SetThrowDrag(false);
@@ -70,11 +74,33 @@ bool AlipayList::AlipayInitList()
 
 void AlipayList::InitAlipayListItem()
 {
+#if 0
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListModel::InitAlipayListItem()");
     alipayLists[0] = {ALIPAY_LIST_ITEM_PAY, ALIPAY_LIST_PAY_BUTTON, PNG_ALIPAY_LIST_PAY, "付款码", true};
+#if SUPPORT_ALIPAY_TRANS
     alipayLists[1] = {ALIPAY_LIST_ITEM_TRANS, ALIPAY_LIST_TRANS_BUTTON, PNG_ALIPAY_LIST_TRANS, "乘车码", true};
     alipayLists[2] = {ALIPAY_LIST_ITEM_SETTING, ALIPAY_LIST_SETTING_BUTTON, PNG_ALIPAY_LIST_SETTING, "设置", true};
     alipayLists[3] = {ALIPAY_LIST_ITEM_HELP, ALIPAY_LIST_HELP_BUTTON, PNG_ALIPAY_LIST_HELP, "帮助", true};
+#else
+    alipayLists[1] = {ALIPAY_LIST_ITEM_SETTING, ALIPAY_LIST_SETTING_BUTTON, PNG_ALIPAY_LIST_SETTING, "设置", true};
+    alipayLists[2] = {ALIPAY_LIST_ITEM_HELP, ALIPAY_LIST_HELP_BUTTON, PNG_ALIPAY_LIST_HELP, "帮助", true};
+#endif
+#else
+    /* -------------------------------------------------------------------------- */
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayListModel::InitAlipayListItem()");
+    alipayLists[0] = {ALIPAY_LIST_ITEM_MAX, nullptr, nullptr, "支付宝", false};
+    alipayLists[1] = {ALIPAY_LIST_ITEM_PAY, ALIPAY_LIST_PAY_BUTTON, PNG_ALIPAY_LIST_PAY, "付款码", true};
+    #if SUPPORT_ALIPAY_TRANS
+    alipayLists[2] = {ALIPAY_LIST_ITEM_TRANS, ALIPAY_LIST_TRANS_BUTTON, PNG_ALIPAY_LIST_TRANS, "乘车码", true};
+    alipayLists[3] = {ALIPAY_LIST_ITEM_SETTING, ALIPAY_LIST_SETTING_BUTTON, PNG_ALIPAY_LIST_SETTING, "设置", true};
+    alipayLists[4] = {ALIPAY_LIST_ITEM_HELP, ALIPAY_LIST_HELP_BUTTON, PNG_ALIPAY_LIST_HELP, "帮助", true};
+    #else
+    alipayLists[2] = {ALIPAY_LIST_ITEM_SETTING, ALIPAY_LIST_SETTING_BUTTON, PNG_ALIPAY_LIST_SETTING, "设置", true};
+    alipayLists[3] = {ALIPAY_LIST_ITEM_HELP, ALIPAY_LIST_HELP_BUTTON, PNG_ALIPAY_LIST_HELP, "帮助", true};
+    #endif
+    /* -------------------------------------------------------------------------- */
+
+#endif
 }
 
 bool AlipayList::InitListView()
@@ -97,7 +123,7 @@ bool AlipayList::InitListView()
 void AlipayList::AddAlipayListItemToList(void)
 {
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayList::AddAlipayListItemToList");
-    for (uint8_t i = 0; i < ALIPAY_LIST_ITEM_MAX; i++) {
+    for (uint8_t i = 0; i < ALIPAY_LIST_ITEM_MAX + 1; i++) {
         listAdapter->AddListItem(alipayLists[i]);
     }
 }
index 76c9385..8757eb6 100644 (file)
@@ -8,6 +8,25 @@
 #include "AlipayMainView.h"\r
 #include "UiConfig.h"\r
 #include "alipay_feature.h"\r
+#include "custom_utils.h"\r
+#include "AlipayC.h"\r
+\r
+bool is_Alipay_bind(void)\r
+{\r
+    if( OHOS:: AlipayMainView::GetInstance())\r
+    {\r
+        int16 theView = OHOS::AlipayMainView::GetInstance()->GetWhichInter();\r
+        if(theView==OHOS::ALIPAY_BIND_VIEW)\r
+        {\r
+            return true;\r
+        }\r
+        else\r
+        {\r
+            return false;\r
+        }\r
+    }\r
+    return false;\r
+}\r
 \r
 namespace OHOS {\r
 #define ALIPAY_BIND_SUCCESS_RES_TIMER_LENGTH 3000\r
@@ -49,6 +68,12 @@ AlipayMainView *AlipayMainView::GetInstance(void)
 \r
 void AlipayMainView::OnStart()\r
 {\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::OnStart");\r
+    if(Alipay_is_init()==false)\r
+    return;\r
+    // 增加按键监听\r
+    RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
+\r
     alipayInterfacesId startView;\r
     bool bindFlag = AlipayModel::GetInstance()->AlipayGetBindstate();\r
     if (!bindFlag) {\r
@@ -60,6 +85,8 @@ void AlipayMainView::OnStart()
         alipayBind->InitView();\r
         startView = ALIPAY_BIND_VIEW;\r
         container[startView] = alipayBind;\r
+        //如果是绑定界面则打开广播\r
+        start_alipay_ble_service();\r
         AlipayModel::GetInstance()->AlipayStartBind();\r
     } else {\r
         alipayList = new AlipayList(presenter_);\r
@@ -175,7 +202,22 @@ int16 AlipayMainView::GetListenInter(void)
 {\r
     return interListen;\r
 }\r
+//当前定义为给按键专用\r
+void AlipayMainView::DropView(uint8_t type)\r
+{\r
 \r
+    if(alipayWhichInter==ALIPAY_BIND_ANI_VIEW)\r
+    {\r
+        ChangeView(ALIPAY_BIND_ANI_VIEW, ALIPAY_BIND_EXIT_VIEW);\r
+    }\r
+    else\r
+    {\r
+        AlipayModel::GetInstance()->AlipayStopSwitchTimer();\r
+        AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+        AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
+        NativeAbility::GetInstance().Back();\r
+    }\r
+}\r
 void AlipayMainView::DropView(UIView &view)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView");\r
@@ -200,8 +242,9 @@ void AlipayMainView::DropView(UIView &view)
             AlipayModel::GetInstance()->AlipayFinishBind();\r
         }\r
         AlipayModel::GetInstance()->AlipayStopSwitchTimer();\r
-        NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
-\r
+        AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+        AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
+        NativeAbility::GetInstance().Back();\r
     } else if (&view == container[ALIPAY_TRANS_LIST_VIEW]) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_LIST_VIEW]");\r
         ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_LIST_VIEW);\r
@@ -433,6 +476,11 @@ bool AlipayMainView::ChangeBindView(int16 thisView)
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::ChangeBindView");\r
     AlipayModel::GetInstance()->AlipayStartBind();\r
+\r
+    /**启动alipay蓝牙服务*/\r
+    //需要重新打开广播\r
+    start_alipay_ble_service();\r
+\r
     if (container[thisView] == nullptr) {\r
         alipayBind = new AlipayBind(presenter_);\r
         if (alipayBind == nullptr) {\r
@@ -730,6 +778,12 @@ void AlipayMainView::DestroyTempView(int16 hideView)
         }\r
     }\r
     if (hideView == ALIPAY_TRANS_TIPS_VIEW) {\r
+\r
+        if(AlipayModel::GetInstance()->AlipayGetSwitchIndex() == ALIPAY_TRANS_TIPS_LIST_UNKNOW)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DestroyTempView ALIPAY_TRANS_TIPS_UNKNOW");\r
+            AlipayModel::GetInstance()->delete_all_files_in_folder("/user/alipay/");\r
+        }\r
         delete alipayTransTips;\r
         alipayTransTips = nullptr;\r
     } else if (hideView == ALIPAY_TRANS_RES_VIEW) {\r
@@ -772,6 +826,11 @@ void AlipayMainView::ChangeView(int16 hideView, int16 showView)
     container[hideView]->SetVisible(false);\r
     container[showView]->SetVisible(true);\r
 \r
+    if(hideView==ALIPAY_BIND_VIEW)\r
+    {\r
+        stop_alipay_ble_service();\r
+    }\r
+\r
     AlipayModel::GetInstance()->SetAlipayInterLis(showView);\r
 \r
     Draw();\r
index 0414fd4..5142312 100644 (file)
 #include "AlipayMainView.h"\r
 #include "graphic_service.h"\r
 \r
+#include "power_display_service.h"\r
+#include "custom_utils.h"\r
+#include "bleService.h"\r
+#include "ConfigModel.h"\r
 namespace OHOS {\r
 AlipayModel::AlipayModel() : alipayApi(alipay_svr_get_api())\r
 {\r
@@ -37,6 +41,7 @@ int16 AlipayModel::GetAlipayInterLis(void)
 {\r
     return alipayInterLis;\r
 }\r
+static uint8_t disconnectfalg=0;\r
 \r
 void AlipayBindCallBackProc(void *argument)\r
 {\r
@@ -61,6 +66,7 @@ void AlipayBindCallBackProc(void *argument)
     } else if (ALIPAY_INTER_STATUS_BINDING_OK == status && reFlag == 1) {\r
         AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
         AlipayModel::GetInstance()->AlipayFinishBind();\r
+        AlipayModel::GetInstance()->AlipayStopBindTimer();\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_OK");\r
         AlipayModel::GetInstance()->AlipaySetBindFlag(true);\r
         AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
@@ -71,13 +77,95 @@ void AlipayBindCallBackProc(void *argument)
         AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
         AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
     }\r
+    else if (ALIPAY_INTER_STATUS_START_BINDING == status && reFlag == 1) {\r
+        if(get_Alipay_ble_connect()==false)\r
+        {\r
+            disconnectfalg++;\r
+            if(disconnectfalg>=2)\r
+            {\r
+                \r
+                AlipayModel::GetInstance()->AlipaySetBindFlag(false);\r
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
+                AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
+                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                 "ble 断开连接 ");\r
+                AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+                AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
+            }\r
+\r
+              //AlipayModel::GetInstance()->ble_disconnect_AlipayStartBind();\r
+        }\r
+       \r
+    }\r
 }\r
+void AlipayBindCallBackProcdisconnect(void *argument)\r
+{\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProcdisconnect in.");\r
+    const alipay_svr_api_t *alipay_api = alipay_svr_get_api();\r
+    int32_t status = 0;\r
+    int32_t ret = alipay_api->get_bind_status(&status);\r
+    if (AlipayMainView::GetInstance() == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::GetInstance is null, do nothing.");\r
+        return;\r
+    }\r
+\r
+    int16_t currentView = AlipayModel::GetInstance()->GetAlipayInterLis();\r
+    uint32_t reFlag = AlipayModel::GetInstance()->AlipayGetRefreshFlag();\r
+\r
+    if (ALIPAY_INTER_STATUS_START_BINDING == status && reFlag == 1 ) {\r
+    if(get_Alipay_ble_connect()==false)\r
+    {\r
 \r
+        AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+        AlipayModel::GetInstance()->AlipaySetBindFlag(false);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
+        AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
+        AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
+    }\r
+       \r
+    }\r
+}   \r
 void AlipayBindTimerCallBack(void *argument)\r
 {\r
     GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayBindCallBackProc, argument));\r
 }\r
 \r
+\r
+void AlipayBindTimerCallBackbledisconnect(void *argument)\r
+{\r
+    GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayBindCallBackProcdisconnect, argument));\r
+}\r
+\r
+bool AlipayModel::ble_disconnect_AlipayStartBind(void)\r
+{\r
+        // if (ble_disconnect_bindTimerId == nullptr) {\r
+\r
+        //     ble_disconnect_bindTimerId = osTimerNew(AlipayBindTimerCallBackbledisconnect, osTimerOnce, (void *)0, nullptr);\r
+        //     if (ble_disconnect_bindTimerId == nullptr) {\r
+        //         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Create timer fail.");\r
+        //         return false;\r
+        //     }\r
+\r
+        //     int32_t retcode = osTimerStart(ble_disconnect_bindTimerId, ALIPAY_BIND_STATUS_DISCONNECT);\r
+        //     if (retcode != 0) {\r
+        //         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Start timer fail");\r
+        //         return false;\r
+        //     }\r
+        //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::ble_disconnect_AlipayStartBind");\r
+        // }\r
+\r
+    return true;\r
+}\r
+void AlipayModel::AlipayStopdisconnecTimer(void)\r
+{\r
+    //     if (ble_disconnect_bindTimerId == nullptr) {\r
+    //         return;\r
+    //     }\r
+    //     int32_t ret = osTimerStop(ble_disconnect_bindTimerId);\r
+    //     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStopBindTimer in,%u.", ret);\r
+    // ble_disconnect_bindTimerId=nullptr;\r
+    return;\r
+}\r
 bool AlipayModel::AlipayStartBind(void)\r
 {\r
     if (bindTimerId == nullptr) {\r
@@ -87,6 +175,7 @@ bool AlipayModel::AlipayStartBind(void)
             return false;\r
         }\r
     }\r
+    disconnectfalg=0;\r
 \r
     int32_t retcode = osTimerStart(bindTimerId, ALIPAY_BIND_STATUS_TIMER_LENGTH);\r
     if (retcode != 0) {\r
@@ -94,7 +183,7 @@ bool AlipayModel::AlipayStartBind(void)
         return false;\r
     }\r
 \r
-    alipayApi->bind_start();\r
+    alipayApi->bind_start(); //调用支付宝API开始绑定流程\r
     uint8_t str[ALIPAY_GET_BIND_STR_MAX_LENGTH] = { 0 };\r
     AlipayGetBindCode(str);\r
     return true;\r
@@ -178,12 +267,14 @@ void AlipayModel::AlipayStopSwitchTimer()
     return;\r
 }\r
 \r
+//通过 alipay_get_bind_status 获取绑定状态,判断是否需要跳转绑定页面\r
 bool AlipayModel::AlipayGetBindstate(void)\r
 {\r
     bool state = alipayApi->get_bind_state();\r
     return state;\r
 }\r
 \r
+//通过 alipay_get_bind_str 获取绑定码串生成二维码\r
 int32_t AlipayModel::AlipayGetBindCode(uint8_t *bindStr)\r
 {\r
     int32_t bindStrLen = ALIPAY_GET_BIND_STR_MAX_LENGTH;\r
@@ -192,6 +283,7 @@ int32_t AlipayModel::AlipayGetBindCode(uint8_t *bindStr)
     return ret;\r
 }\r
 \r
+//通过 alipay_get_pay_str 获取支付码串生成二维码\r
 int32_t AlipayModel::AlipayGetPayCode(uint8_t *payStr)\r
 {\r
     uint32_t payStrLen = ALIPAY_GET_PAY_STR_MAX_LENGTH;\r
@@ -200,6 +292,7 @@ int32_t AlipayModel::AlipayGetPayCode(uint8_t *payStr)
     return ret;\r
 }\r
 \r
+//通过 alipay_get_nickname 获取用户昵称\r
 int32_t AlipayModel::AlipayGetNickName(uint8_t *nickName)\r
 {\r
     uint32_t nickNameLen = ALIPAY_GET_NICKNAME_MAX_LENGTH;\r
@@ -208,6 +301,7 @@ int32_t AlipayModel::AlipayGetNickName(uint8_t *nickName)
     return ret;\r
 }\r
 \r
+//通过 alipay_get_logon_id 获取用户登录账号\r
 int32_t AlipayModel::AlipayGetIdName(uint8_t *idStr)\r
 {\r
     uint32_t idStrLen = ALIPAY_GET_ID_STR_MAX_LENGTH;\r
@@ -216,6 +310,7 @@ int32_t AlipayModel::AlipayGetIdName(uint8_t *idStr)
     return ret;\r
 }\r
 \r
+//通过 alipay_get_aid_code 获取帮助码串生成二维码\r
 int32_t AlipayModel::AlipayGetAidCode(int8_t *aidStr)\r
 {\r
     uint32_t aidStrLen = ALIPAY_GET_AID_STR_MAX_LENGTH;\r
@@ -224,6 +319,7 @@ int32_t AlipayModel::AlipayGetAidCode(int8_t *aidStr)
     return ret;\r
 }\r
 \r
+//通过 alipay_remove_bind 解除绑定关系\r
 void AlipayModel::AlipayUnbind(void)\r
 {\r
     int32_t ret = alipayApi->remove_bind();\r
@@ -233,6 +329,8 @@ void AlipayModel::AlipayUnbind(void)
 \r
 void AlipayModel::AlipayStopBindTimer(void)\r
 {\r
+    disconnectfalg=0;\r
+\r
     if (bindTimerId == nullptr) {\r
         return;\r
     }\r
@@ -253,6 +351,7 @@ void AlipayModel::AlipayExitLpm(void)
     return;\r
 }\r
 \r
+/*从支付宝获取最后一次交易的交易码和交易卡标题,并将结果存储在相应的数组中*/\r
 int32_t AlipayModel::AlipayGetLastTranscode()\r
 {\r
     memset_s(transCode_, ALIPAY_TRANS_CODE_MAX_LEN, 0, ALIPAY_TRANS_CODE_MAX_LEN);\r
@@ -260,10 +359,11 @@ int32_t AlipayModel::AlipayGetLastTranscode()
     uint32_t len = ALIPAY_TRANS_CODE_MAX_LEN;\r
 \r
     int32_t ret = alipayApi->get_last_transcode(cardTitle_, transCode_, &len);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetLastTranscode in:ret:%u,len:%u.", ret, len);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetLastTranscode in:ret:%u,len:%u.", ret, len);\r
     return ret;\r
 }\r
 \r
+/*获取本地交易列表*/\r
 int32_t AlipayModel::AlipayGetLocalTranslist()\r
 {\r
     cardInfo_ = AlipayTransGetCardList();\r
@@ -271,7 +371,7 @@ int32_t AlipayModel::AlipayGetLocalTranslist()
         sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);\r
     uint32_t localListSize = sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH;\r
     int32_t ret = alipayApi->get_local_translist(cardInfo_, &localListSize, &cardSum_);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetLastTranscode in:%u.", ret);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "获取本地交易列表 in:%u.", ret);\r
     return ret;\r
 }\r
 \r
@@ -291,7 +391,7 @@ int32_t AlipayModel::AlipayGetOnlineTranslist()
     uint32_t onListSize = sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH;\r
     uint32_t onLineNum = 0;\r
     int32_t ret = alipayApi->get_online_translist(onLineList, &onListSize, &onLineNum);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetOnlineTranslist in,ret:%u,num:%u.", ret, onLineNum);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetOnlineTranslist in,ret:%u,num:%u.", ret, onLineNum);\r
 \r
     if (ret == 0) {\r
         memset_s(cardInfo_, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, 0,\r
@@ -311,25 +411,29 @@ int32_t AlipayModel::AlipayUpdateTransCard(uint32_t index)
     return ret;\r
 }\r
 \r
+// 检查指定索引的交易卡状态\r
 int32_t AlipayModel::AlipayCheckTransCard(uint32_t index)\r
 {\r
     mc_alipay_tans_card_status_t cardStatus = { 0 };\r
+    //检查指定索引的交易卡状态\r
     int32_t ret = alipayApi->check_trans_cartstatus(&cardInfo_[index], &cardStatus);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayCheckTransCard in:%u.", ret);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayCheckTransCard in:%u.", ret);\r
+    // 如果交易卡存在且剩余使用次数大于等于最小有效次数,返回成功\r
     if (cardStatus.card_exits && cardStatus.remain_use_count >= ALIPAY_TRANS_CARD_MIN_VALID_NUM) {\r
         return 0;\r
     }\r
     return -1;\r
 }\r
 \r
+// 获取指定索引的交易码\r
 int32_t AlipayModel::AlipayGetTransCode(uint32_t index)\r
 {\r
-    cardInfo_ = AlipayTransGetCardList();\r
+    cardInfo_ = AlipayTransGetCardList();                                                       //获取交易卡列表\r
     memset_s(transCode_, ALIPAY_TRANS_CODE_MAX_LEN, 0, ALIPAY_TRANS_CODE_MAX_LEN);\r
     memset_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, 0, ALIPAY_TRANS_CARD_MEMBER_LEN);\r
     transCodeLen_ = ALIPAY_TRANS_CODE_MAX_LEN;\r
-    int32_t ret = alipayApi->get_transcode(&cardInfo_[index], transCode_, &transCodeLen_);\r
-    if (ret == 0) {\r
+    int32_t ret = alipayApi->get_transcode(&cardInfo_[index], transCode_, &transCodeLen_);      //获取指定索引的交易码\r
+    if (ret == 0) {                                                                             //如果获取成功,复制卡标题\r
         memcpy_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, cardInfo_[index].title, ALIPAY_TRANS_CARD_MEMBER_LEN);\r
     }\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayCheckTransCard in:%u.", ret);\r
@@ -581,4 +685,62 @@ char* AlipayModel::AlipayGetCardTitle(void)
     return cardTitle_;\r
 }\r
 \r
+/// @brief 支付宝屏幕控制\r
+/// @param turnOnFlag \r
+void AlipayModel::AlipayScreenControl(bool turnOnFlag)\r
+{\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayScreenControl %d",turnOnFlag);\r
+    const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
+    if(turnOnFlag)\r
+    {\r
+        ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);\r
+        uapi_setScreenBrightness(MAX_BRIGHTNESS); //最高亮度\r
+    }\r
+    else\r
+    {\r
+        ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
+        uapi_setScreenBrightness(ConfigModel::GetInstance()->GetBrightness());//退出APP将亮度恢复到ConfigModel中设置的亮度值\r
+    }\r
+}\r
+\r
+#include <string.h>\r
+#include <dirent.h>\r
+#include <sys/stat.h>\r
+#include <unistd.h>\r
+\r
+// 删除指定文件夹下的所有文件\r
+void AlipayModel::delete_all_files_in_folder(const char *folder_path) {\r
+    DIR *dir;\r
+    struct dirent *entry;\r
+    struct stat statbuf;\r
+    char path[1024];\r
+\r
+    if ((dir = opendir(folder_path)) == NULL) {\r
+        printf("无法打开文件夹");\r
+        return;\r
+    }\r
+\r
+    while ((entry = readdir(dir)) != NULL) {\r
+        if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {\r
+            continue;\r
+        }\r
+\r
+        snprintf(path, sizeof(path), "%s/%s", folder_path, entry->d_name);\r
+\r
+        if (stat(path, &statbuf) == -1) {\r
+            printf("无法获取文件状态");\r
+            continue;\r
+        }\r
+\r
+        if (S_ISREG(statbuf.st_mode)) {\r
+            if (unlink(path) == -1) {\r
+                printf("无法删除文件");\r
+            }\r
+        }\r
+    }\r
+\r
+    closedir(dir);\r
+    printf("文件夹 %s 下的所有文件已成功删除。\n", folder_path);\r
+}\r
+\r
 }
\ No newline at end of file
index 79e738f..80f52fa 100644 (file)
@@ -204,7 +204,7 @@ bool AlipayPayCode::InitView()
     SetOnDragListener(presenter_);\r
     SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
     SetStyle(STYLE_BACKGROUND_COLOR, 0xff1677ff);\r
-    SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+    //SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
 \r
     if (!AlipayInitLabel()) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPayCode::InitView AlipayInitLabel() false");\r
index a58470e..eb1bff4 100644 (file)
 #include "AlipayTransListItemView.h"\r
 #include "AlipayTransListView.h"\r
 #include "NativeRegisterManager.h"\r
-\r
+#include "custom_utils.h"\r
+#include "common/key_code.h"\r
+#include "gfx_utils/mem_check.h"\r
+#include "AlipayC.h"\r
 namespace OHOS {\r
 \r
 REGIST_MENU(VIEW_MAIN_ALIPAY, AlipayMainView, AlipayPresenter, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_DEFAULT_IMG, "支付宝");\r
@@ -51,10 +54,18 @@ AlipayPresenter *AlipayPresenter::GetInstance()
 \r
 void AlipayPresenter::OnStart()\r
 {\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter OnStart");\r
+    if(Alipay_is_init()==false)\r
+    return;\r
+    /* -------------------------------- 设置支付宝界面常亮 ------------------------------- */\r
+    alipayMode_->AlipayScreenControl(true);\r
+    /* -------------------------------------------------------------------------- */\r
     alipayMode_->AlipayExitLpm();\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " alipayMode_->AlipayExitLpm()");\r
+\r
     if (!alipayMode_->AlipayInitModel()) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::OnStart AlipayInitModel fail.");\r
-        NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
+        NativeAbility::GetInstance().Back();\r
         return;\r
     }\r
 }\r
@@ -67,9 +78,15 @@ void AlipayPresenter::OnResume(void)
 \r
 void AlipayPresenter::OnStop(void)\r
 {\r
+\r
+    /**关闭alipay蓝牙服务*/\r
+    stop_alipay_ble_service();\r
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter OnStop");\r
     svr_alipay_destroy_task();\r
     alipayMode_->AlipayDeinitModel();\r
     alipayMode_->AlipayEnterLpm();\r
+    /* -------------------------------- 恢复屏幕保持亮屏的时间 ------------------------------- */\r
+    alipayMode_->AlipayScreenControl(false);\r
 }\r
 \r
 bool AlipayPresenter::OnDrag(UIView &view, const DragEvent &event)\r
@@ -88,8 +105,7 @@ void AlipayPresenter::ClickExitAlipay(UIView &view)
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickExitAlipay start");\r
     AlipayModel::GetInstance()->AlipayFinishBind();\r
-    uint16 preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-    NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+    NativeAbility::GetInstance().Back();\r
     return;\r
 }\r
 \r
@@ -100,15 +116,25 @@ void AlipayPresenter::ClickJumpPay(UIView &view)
     return;\r
 }\r
 \r
+/**\r
+ * @brief 点击跳转到交通卡相关视图的处理函数\r
+ * \r
+ * 当用户点击跳转到交通卡相关视图的按钮时,此函数会被调用。\r
+ * 它会尝试获取本地交通卡交易列表,根据获取结果决定跳转到不同的视图。\r
+ * \r
+ * @param view 被点击的视图对象\r
+ */\r
 void AlipayPresenter::ClickJumpTrans(UIView &view)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpTrans start");\r
-    int32_t ret = alipayMode_->AlipayGetLocalTranslist();\r
-    if (ret != 0) {\r
-        AlipaySetSwitchIndex(ALIPAY_TRANS_GET_LIST_FIRST);\r
-        view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_GET_TRANS_LIST_VIEW);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "点击跳转到交通卡相关视图的操作开始");\r
+    int32_t ret = alipayMode_->AlipayGetLocalTranslist();                   //获取本地交通卡交易列表\r
+    if (ret != 0) {                                                         //获取本地交通卡交易列表失败\r
+        AlipaySetSwitchIndex(ALIPAY_TRANS_GET_LIST_FIRST);                  //设置切换索引为首次获取交通卡交易列表\r
+        view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_GET_TRANS_LIST_VIEW);    //将当前视图从列表视图切换到获取交通卡交易列表视图\r
     } else if (ret == 0) {\r
-        int32_t get_res = alipayMode_->AlipayGetLastTranscode();\r
+        int32_t get_res = alipayMode_->AlipayGetLastTranscode();            //从支付宝获取最后一次交易的交易码\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpTrans get_res:%d", get_res);\r
         if (get_res == 0) {\r
             view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_TRANS_VIEW);\r
         } else {\r
@@ -120,6 +146,7 @@ void AlipayPresenter::ClickJumpTrans(UIView &view)
 \r
 void AlipayPresenter::ClickRefreshList(UIView &view)\r
 {\r
+    //刷新交通卡列表\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickRefreshList start");\r
     alipayMode_->AlipaySendMsg(ALIPAY_MSG_UPDATA_TRANS_LIST);\r
     view_->ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_TRANS_ANI_VIEW);\r
@@ -128,6 +155,7 @@ void AlipayPresenter::ClickRefreshList(UIView &view)
 \r
 void AlipayPresenter::ClickBackList(UIView &view)\r
 {\r
+    //获取乘车码列表视图退回到列表视图\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickBackList start");\r
     view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_LIST_VIEW);\r
     return;\r
@@ -135,8 +163,11 @@ void AlipayPresenter::ClickBackList(UIView &view)
 \r
 void AlipayPresenter::ClickUpdateList(UIView &view)\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickUpdateList start");\r
+    //获取交通卡列表\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickUpdateList start");\r
+    // 发送更新交通卡列表的消息\r
     alipayMode_->AlipaySendMsg(ALIPAY_MSG_UPDATA_TRANS_LIST);\r
+    // 从获取交通卡列表视图切换到交通卡动画视图\r
     view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_ANI_VIEW);\r
     return;\r
 }\r
@@ -164,6 +195,7 @@ void AlipayPresenter::ClickTransToTransList(UIView &view)
     return;\r
 }\r
 \r
+//点击刷新按钮\r
 void AlipayPresenter::ClickTransToTransCode(UIView &view)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransToTransCode start");\r
@@ -200,25 +232,27 @@ void AlipayPresenter::ClickTransToTransCode(UIView &view)
     return;\r
 }\r
 \r
+/// @brief 处理用户点击重试获取支付宝交易码\r
+/// @param view \r
 void AlipayPresenter::ClickRetryTransCode(UIView &view)\r
 {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickRetryTransCode start");\r
-    uint32_t index = AlipayGetCardNum();\r
-    int32_t ret = alipayMode_->AlipayGetTransCode(index);\r
+    uint32_t index = AlipayGetCardNum();                                            //获取当前选中的交通卡索引\r
+    int32_t ret = alipayMode_->AlipayGetTransCode(index);                           //尝试重新获取交易码\r
     if (ret == 0) {\r
-        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_VIEW);\r
+        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_VIEW);           //成功获取交易码,跳转到交易码视图\r
     } else if (ret == ALIPAY_TRANS_CODE_NET_ERROR) {\r
         AlipaySetSwitchIndex(ALIPAY_TRANS_RES_CODE);\r
-        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_RES_VIEW);\r
+        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_RES_VIEW);      //网络错误,跳转到交易码获取失败视图\r
     } else {\r
         if (ret == ALIPAY_TRANS_CODE_DATA_LIMIT) {\r
-            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_SECURE);\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_SECURE);                         //数据限制错误:设置安全提示\r
         } else if (ret == ALIPAY_TRANS_CODE_NOT_SUPPORT) {\r
-            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT);\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT);                    //不支持的错误:设置不支持提示\r
         } else {\r
-            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW);\r
+            AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW);                    //未知错误:设置未知错误提示\r
         }\r
-        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_TIPS_VIEW);\r
+        view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_TIPS_VIEW);      //切换到相应的错误提示视图\r
     }\r
     return;\r
 }\r
@@ -412,6 +446,21 @@ bool AlipayPresenter::OnClick(UIView &view, const ClickEvent &event)
     return true;\r
 }\r
 \r
+bool AlipayPresenter::OnKeyAct(UIView &view, const KeyEvent &event)\r
+{\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::OnKeyAct");\r
+    uint16 keyID = event.GetKeyId();\r
+    uint16_t keyState = event.GetState();\r
+    // 如果是power键就返回上一级\r
+    if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) &&  keyState == 1 && uapi_get_screen_state() == 0)\r
+    {\r
+        view_->DropView(0);\r
+       \r
+    }\r
+    return true;\r
+\r
+}\r
+\r
 int32_t AlipayPresenter::AlipayGetPayCode(uint8_t *payStr)\r
 {\r
     return alipayMode_->AlipayGetPayCode(payStr);\r
@@ -432,6 +481,7 @@ int32_t AlipayPresenter::AlipayGetIdName(uint8_t *idStr)
     return alipayMode_->AlipayGetIdName(idStr);\r
 }\r
 \r
+//通过获取帮助码串生成二维码\r
 int32_t AlipayPresenter::AlipayGetAidCode(int8_t *aidStr)\r
 {\r
     return alipayMode_->AlipayGetAidCode(aidStr);\r
@@ -456,6 +506,7 @@ void AlipayPresenter::AlipaySetSwitchIndex(uint32_t switchIndex)
     alipayMode_->AlipaySetSwitchIndex(switchIndex);\r
 }\r
 \r
+//获取\r
 uint32_t AlipayPresenter::AlipayGetCardNum(void)\r
 {\r
     return alipayMode_->AlipayGetCardNum();\r
index c889eff..1431015 100644 (file)
@@ -8,36 +8,39 @@
 #include "UiConfig.h"\r
 #include <string>\r
 #include "cmsis_os.h"\r
-#include "AlipaySetting.h"\r
-#include "AlipayModel.h"\r
+// #include "AlipaySetting.h"\r
+// #include "AlipayModel.h"\r
+#include "alipay/include/AlipaySetting.h"\r
+#include "alipay/include/AlipayModel.h"\r
+#include "uicomponents/UIComponents.h"\r
 \r
 namespace OHOS {\r
-static const char *SETTING_TITLE = (char *)"设置";\r
-static const char *SETTING_BUTTON = (char *)"解除绑定";\r
+static const char *SETTING_TITLE = (char *)"设置";      \r
+static const char *SETTING_BUTTON = (char *)"解除绑定"; \r
 \r
-static const int16 SETTING_TITLE_FONT = 38;\r
-static const int16 SETTING_TITLE_X = 0;\r
-static const int16 SETTING_TITLE_Y = 35;\r
-static const int16 SETTING_TITLE_WIDTH = 454;\r
-static const int16 SETTING_TITLE_HEIGHT = 53;\r
+static const int16 SETTING_TITLE_FONT = 30;\r
+static const int16 SETTING_TITLE_X = (HORIZONTAL_RESOLUTION - 300) / 2;\r
+static const int16 SETTING_TITLE_Y = 50;\r
+static const int16 SETTING_TITLE_WIDTH = 300;\r
+static const int16 SETTING_TITLE_HEIGHT = 35;\r
 \r
-static const int16 SETTING_NAME_FONT = 38;\r
-static const int16 SETTING_NAME_X = 0;\r
-static const int16 SETTING_NAME_Y = 142;\r
-static const int16 SETTING_NAME_WIDTH = 454;\r
-static const int16 SETTING_NAME_HEIGHT = 53;\r
+static const int16 SETTING_NAME_FONT = 30;\r
+static const int16 SETTING_NAME_X = (HORIZONTAL_RESOLUTION - 360) / 2;\r
+static const int16 SETTING_NAME_Y = 155;\r
+static const int16 SETTING_NAME_WIDTH = 360;\r
+static const int16 SETTING_NAME_HEIGHT = 35;\r
 \r
 static const int16 SETTING_ID_FONT = 30;\r
-static const int16 SETTING_ID_X = 0;\r
-static const int16 SETTING_ID_Y = 198;\r
-static const int16 SETTING_ID_WIDTH = 454;\r
-static const int16 SETTING_ID_HEIGHT = 109;\r
+static const int16 SETTING_ID_X = (HORIZONTAL_RESOLUTION - 360) / 2;\r
+static const int16 SETTING_ID_Y = 210;\r
+static const int16 SETTING_ID_WIDTH = 360;\r
+static const int16 SETTING_ID_HEIGHT = 35;\r
 \r
-static const int16 SETTING_BUTTON_X = 121;\r
-static const int16 SETTING_BUTTON_Y = 320;\r
-static const int16 SETTING_BUTTON_WIDTH = 212;\r
-static const int16 SETTING_BUTTON_HEIGHT = 73;\r
-static const int16 SETTING_BUTTON_FONT = 38;\r
+static const int16 SETTING_BUTTON_X = (HORIZONTAL_RESOLUTION - 280) / 2;\r
+static const int16 SETTING_BUTTON_Y = 315;\r
+static const int16 SETTING_BUTTON_WIDTH = 280;\r
+static const int16 SETTING_BUTTON_HEIGHT = 90;\r
+static const int16 SETTING_BUTTON_FONT = 30;\r
 \r
 AlipaySetting::AlipaySetting(AlipayPresenter *presenter)\r
 {\r
@@ -111,13 +114,16 @@ bool AlipaySetting::AlipayInitLabel(void)
     }\r
     uint8_t str[ALIPAY_GET_NICKNAME_MAX_LENGTH] = {0};\r
     presenter_->AlipayGetNickName(str);\r
-    labelName->SetText((const char *)str);\r
-    labelName->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTING_NAME_FONT);\r
+    uint8_t str_[ALIPAY_GET_NICKNAME_MAX_LENGTH] = {0};\r
+    updata_char((char *)str_,(char *)str,ALIPAY_GET_NICKNAME_MAX_LENGTH);\r
+    labelName->SetText((const char *)str_);\r
+    labelName->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, SETTING_NAME_FONT);\r
+\r
     labelName->SetPosition(SETTING_NAME_X, SETTING_NAME_Y, SETTING_NAME_WIDTH, SETTING_NAME_HEIGHT);\r
-    labelName->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+    labelName->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
     labelName->SetStyle(STYLE_TEXT_FONT, SETTING_NAME_FONT);\r
     labelName->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    labelName->SetRollSpeed(30);\r
+    labelName->SetRollSpeed(23);\r
     labelName->SetRollStartPos(SETTING_NAME_X);\r
 \r
     Add(labelName);\r
@@ -132,11 +138,11 @@ bool AlipaySetting::AlipayInitLabel(void)
     labelId->SetText((const char *)strID);\r
     labelId->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTING_ID_FONT);\r
     labelId->SetPosition(SETTING_ID_X, SETTING_ID_Y, SETTING_ID_WIDTH, SETTING_ID_HEIGHT);\r
-    labelId->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+    labelId->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
     labelId->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
     labelId->SetStyle(STYLE_TEXT_FONT, SETTING_ID_FONT);\r
     labelId->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    labelId->SetRollSpeed(30);\r
+    labelId->SetRollSpeed(23);\r
     labelId->SetRollStartPos(SETTING_ID_X);\r
 \r
     Add(labelId);\r
index 2f04595..b32347c 100644 (file)
@@ -85,7 +85,7 @@ bool AlipayTransCode::AlipayInitLabel(void)
     labelPayCode->SetPosition(TRANSCODE_TITLE_X, TRANSCODE_TITLE_Y, TRANSCODE_TITLE_WIDTH, TRANSCODE_TITLE_HEIGHT);\r
     labelPayCode->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
     labelPayCode->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    labelPayCode->SetRollSpeed(30);\r
+    labelPayCode->SetRollSpeed(23);\r
     labelPayCode->SetRollStartPos(TRANSCODE_TITLE_X);\r
     Add(labelPayCode);\r
 \r
index aa4b0f0..96fe00d 100644 (file)
@@ -6,16 +6,25 @@
  */
 
 #include "wearable_log.h"
-#include "AlipayTransListItemView.h"
+// #include "AlipayTransListItemView.h"
+#include "alipay/include/AlipayTrans/AlipayTransListItemView.h"
 
 namespace OHOS {
-static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_BUTTON_HEIGHT = 95;
-static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_LABEL_X = 53;
+static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_BUTTON_HEIGHT = 120;
 
-static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_LABEL_WIDTH = 347;
-static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_LABEL_HEIGHT = 90;
+static constexpr int16 ALIPAY_LIST_BACK_X = 0;
+static constexpr int16 ALIPAY_LIST_BACK_Y = 0;
+static constexpr int16_t ALIPAY_LIST_BACK_WIDTH = 380;
+static constexpr int16_t ALIPAY_LIST_BACK_HEIGHT = 100;
 
-static constexpr int16_t ALIPAY_TRANS_LIST_ITEM_FONT_SIZE = 35;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_X = 47 + ALIPAY_LIST_BACK_X;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_Y = 32;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_WIDTH = 250;
+static constexpr int16_t ALIPAY_LIST_ITEM_LABEL_HEIGHT = 35;
+static constexpr int16_t ALIPAY_LIST_ITEM_FONT_SIZE = 30;
+
+static constexpr int16 NUMS_2 = 2;
+static constexpr int16 NUMS_50 = 50;
 
 AlipayTransListItemView::AlipayTransListItemView()
 {
@@ -26,12 +35,16 @@ AlipayTransListItemView::AlipayTransListItemView()
     SetTouchable(true);
     SetUpChild();
 
+    Add(&back);
     Add(&sLabel);
+    Add(&sNextImage);
 }
 
 AlipayTransListItemView::~AlipayTransListItemView()
 {
+    Remove(&back);
     Remove(&sLabel);
+    Remove(&sNextImage);
 }
 
 void AlipayTransListItemView::SetItemInfo(const AlipayTransListItem &itemInfo)
@@ -45,14 +58,24 @@ void AlipayTransListItemView::SetUpChild()
 {
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayTransListItemView::SetUpChild()");
 
-    sLabel.SetPosition(ALIPAY_TRANS_LIST_ITEM_LABEL_X, 0);
-    sLabel.Resize(ALIPAY_TRANS_LIST_ITEM_LABEL_WIDTH, ALIPAY_TRANS_LIST_ITEM_LABEL_HEIGHT);
-    sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, ALIPAY_TRANS_LIST_ITEM_FONT_SIZE);
+    sLabel.SetPosition(ALIPAY_LIST_ITEM_LABEL_X, ALIPAY_LIST_ITEM_LABEL_Y);
+    sLabel.Resize(ALIPAY_LIST_ITEM_LABEL_WIDTH, ALIPAY_LIST_ITEM_LABEL_HEIGHT);
+    sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, ALIPAY_LIST_ITEM_FONT_SIZE);
     sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
-    sLabel.SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
-    sLabel.SetStyle(STYLE_TEXT_COLOR, Color::White().full);
-    sLabel.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
-    sLabel.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+    sLabel.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+    // sLabel.SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
+    // sLabel.SetStyle(STYLE_TEXT_COLOR, Color::White().full);
+    // sLabel.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    // sLabel.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+
+
+    sNextImage.SetSrc(PNG_SETTING_NEXT_IMAGE);
+    sNextImage.SetPosition(ALIPAY_LIST_BACK_X + 326, 37);
+
+    back.SetPosition(ALIPAY_LIST_BACK_X, ALIPAY_LIST_BACK_Y, ALIPAY_LIST_BACK_WIDTH, ALIPAY_LIST_BACK_HEIGHT);
+    back.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+    back.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+    back.SetStyle(STYLE_BORDER_RADIUS, 100);
 }
 
 uint8_t AlipayTransListItemView::GetAlipayTransListIndex()
index b777521..b5307c5 100644 (file)
 #include "common_def.h"
 
 namespace OHOS {
-static constexpr int16_t ALIPAY_TRANS_LIST_POSITION_X = 33;
-static constexpr int16_t ALIPAY_TRANS_LIST_POSITION_Y = 59;
+static constexpr int16_t ALIPAY_TRANS_LIST_POSITION_X = 43;
+static constexpr int16_t ALIPAY_TRANS_LIST_POSITION_Y = 90;
 static constexpr int16_t ALIPAY_TRANS_LIST_SCROLLBLANKSIZE = 50;
 static constexpr int16 MAX_SCR_DIS = 900;
 static constexpr int16 LIST_POS = 20;
 static constexpr int16 SNUM_2 = 2;
 
 static const int16 REFRESH_BUTTON_FONT = 38;
-static const int16 REFRESH_BUTTON_X = 189;
+static const int16 REFRESH_BUTTON_X = 133;
 static const int16 REFRESH_BUTTON_Y = 400;
-static const int16 REFRESH_BUTTON_WIDTH = 76;
-static const int16 REFRESH_BUTTON_HEIGHT = 53;
+static const int16 REFRESH_BUTTON_WIDTH = 200;
+static const int16 REFRESH_BUTTON_HEIGHT = 60;
 static const char *REFRESH_BUTTON = (char *)"刷新";
 
 AlipayTransList::AlipayTransList(AlipayPresenter *presenter)
@@ -67,14 +67,15 @@ bool AlipayTransList::AlipayInitList()
         return false;
     }
     contentList->SetPosition(ALIPAY_TRANS_LIST_POSITION_X, ALIPAY_TRANS_LIST_POSITION_Y);
-    contentList->Resize(HORIZONTAL_RESOLUTION - ALIPAY_TRANS_LIST_POSITION_X, VERTICAL_RESOLUTION - 115);
-    contentList->SetScrollBlankSize(ALIPAY_TRANS_LIST_SCROLLBLANKSIZE);
+    contentList->Resize(380, 300);
+    // contentList->SetScrollBlankSize(ALIPAY_TRANS_LIST_SCROLLBLANKSIZE);
+    contentList->SetReboundSize(15);
     contentList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position
     contentList->SetDraggable(true);
     contentList->SetThrowDrag(false);
     contentList->EnableAutoAlign(true);
     contentList->SetMaxScrollDistance(MAX_SCR_DIS);
-    contentList->SetYScrollBarVisible(true);
+    contentList->SetYScrollBarVisible(false);
     AddAlipayTransListItemToList();
     Add(contentList);
     contentList->SetAdapter(listAdapter);
@@ -108,7 +109,9 @@ bool AlipayTransList::AlipayInitButton()
 
     buttonRefresh->SetTextColor(Color::Blue());
     buttonRefresh->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+    buttonRefresh->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
     buttonRefresh->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+    buttonRefresh->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
 
     buttonRefresh->SetOnClickListener(presenter_);
     Add(buttonRefresh);
@@ -136,6 +139,19 @@ bool AlipayTransList::InitListView()
         return false;
     }
 
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cardCount = %d", listLen);
+    if(listLen > 3)
+    {
+        contentList->SetHeight(300);
+        int16_t y = contentList->GetY() + contentList->GetHeight() + 10;
+        buttonRefresh->SetY(y);
+    }
+    else
+    {
+        contentList->SetHeight(listLen * 100);
+        buttonRefresh->SetY(REFRESH_BUTTON_Y);
+    }
+
     return true;
 }
 
index 1170666..79ffdd8 100644 (file)
 #include "font/ui_font.h"\r
 #include <string>\r
 #include "cmsis_os.h"\r
-#include "AlipayTransTips.h"\r
-#include "AlipayModel.h"\r
+// #include "AlipayTransTips.h"\r
+// #include "AlipayModel.h"\r
+#include "alipay/include/AlipayTrans/AlipayTransTips.h"\r
+#include "alipay/include/AlipayModel.h"\r
 \r
 namespace OHOS {\r
-static const int16 TIPS_LABEL_X_FIRST = 38;\r
-static const int16 TIPS_LABEL_Y_FIRST = 179;\r
-static const int16 TIPS_LABEL_WIDTH_FIRST = 378;\r
-static const int16 TIPS_LABEL_HEIGHT_FIRST = 84;\r
+static const int16 TIPS_LABEL_X_FIRST = (HORIZONTAL_RESOLUTION - 360) / 2;\r
+static const int16 TIPS_LABEL_Y_FIRST = 180;\r
+static const int16 TIPS_LABEL_WIDTH_FIRST = 360;\r
+static const int16 TIPS_LABEL_HEIGHT_FIRST = 70;\r
 static const int16 TIPS_LABEL_FONT_FIRST = 30;\r
 \r
 static const char *TIPS_LABEL_TEXT_1 = (char *)"未知错误_具体错误码,请联系设备厂商解决";\r
@@ -26,17 +28,17 @@ static const char *TIPS_LABEL_TEXT_3 = (char *)"存在安全风险,12小时内
 static const char *TIPS_LABEL_TEXT_4 = (char *)"未知错误_具体错误码,请联系设备厂商解决";\r
 static const char *TIPS_LABEL_TEXT_5 = (char *)"暂不支持,请切换到手机侧使用";\r
 \r
-static const int16 RES_IMAGE_X = 170;\r
-static const int16 RES_IMAGE_Y = 55;\r
+static const int16 RES_IMAGE_X = (HORIZONTAL_RESOLUTION - 112) / 2;\r
+static const int16 RES_IMAGE_Y = 50;\r
 static const int16 RES_IMAGE_WIDTH = 112;\r
 static const int16 RES_IMAGE_HEIGHT = 112;\r
 \r
 static const char *RECOGNIZE_BUTTON = (char *)"确定";\r
-static const int16 RECOGNIZE_BUTTON_FONT = 38;\r
-static const int16 RECOGNIZE_BUTTON_X = 120;\r
-static const int16 RECOGNIZE_BUTTON_Y = 320;\r
-static const int16 RECOGNIZE_BUTTON_WIDTH = 212;\r
-static const int16 RECOGNIZE_BUTTON_HEIGHT = 73;\r
+static const int16 RECOGNIZE_BUTTON_FONT = 30;\r
+static const int16 RECOGNIZE_BUTTON_X = (HORIZONTAL_RESOLUTION - 280) / 2;\r
+static const int16 RECOGNIZE_BUTTON_Y = 315;\r
+static const int16 RECOGNIZE_BUTTON_WIDTH = 280;\r
+static const int16 RECOGNIZE_BUTTON_HEIGHT = 90;\r
 \r
 typedef struct AlipayTransTipsInfo {\r
     const char *str;\r
@@ -120,7 +122,7 @@ bool AlipayTransTips::AlipayInitImage(const char *imageSrc)
 \r
     // Set additional property\r
     alipayImage->SetAutoEnable(false);\r
-    alipayImage->SetResizeMode(UIImageView::FILL);\r
+    alipayImage->SetResizeMode(UIImageView::CENTER);\r
 \r
     Add(alipayImage);\r
     return true;\r
index 2c081ca..0107e26 100644 (file)
 #include "font/ui_font.h"\r
 #include <string>\r
 #include "cmsis_os.h"\r
-#include "AlipayUnbind.h"\r
+// #include "AlipayUnbind.h"\r
+#include "alipay/include/AlipayUnbind.h"\r
 \r
 namespace OHOS {\r
-static const int16 EXIT_LABEL_X_FIRST = 132;\r
-static const int16 EXIT_LABEL_Y_FIRST = 57;\r
-static const int16 EXIT_LABEL_WIDTH_FIRST = 189;\r
-static const int16 EXIT_LABEL_HEIGHT_FIRST = 48;\r
+static const int16 EXIT_LABEL_X_FIRST = 83;\r
+static const int16 EXIT_LABEL_Y_FIRST = 50;\r
+static const int16 EXIT_LABEL_WIDTH_FIRST = 300;\r
+static const int16 EXIT_LABEL_HEIGHT_FIRST = 35;\r
 \r
-static const int16 EXIT_LABEL_X_SEC = 44;\r
-static const int16 EXIT_LABEL_Y_SECOND = 126;\r
-static const int16 EXIT_LABEL_WIDTH_SEC = 365;\r
-static const int16 EXIT_LABEL_HEIGHT_SEC = 128;\r
+static const int16 EXIT_LABEL_X_SEC = 53;\r
+static const int16 EXIT_LABEL_Y_SECOND = 222;\r
 \r
-static const int16 EXIT_LABEL_FONT_FIRST = 38;\r
+static const int16 EXIT_LABEL_WIDTH_SEC = 360;\r
+static const int16 EXIT_LABEL_HEIGHT_SEC = 70;\r
+\r
+static const int16 EXIT_LABEL_FONT_FIRST = 30;\r
 static const int16 EXIT_LABEL_FONT_SEC = 30;\r
 \r
 static const char *UNBIND_LABEL_TEXT_FIRST = (char *)"解除绑定";\r
-static const char *UNBIND_LABEL_TEXT_SECOND = (char *)"解绑后将无法使用支付宝各项解锁功能,确认解绑?";\r
+static const char *UNBIND_LABEL_TEXT_SECOND = (char *)"解绑后将无法使用支付宝各项功能,确认解绑?";\r
 \r
-static const int16 EXIT_BUTTON_EXIT_X = 50;\r
-static const int16 EXIT_BUTTON_EXIT_Y = 312;\r
+static const int16 EXIT_BUTTON_EXIT_X = 58;\r
+static const int16 EXIT_BUTTON_EXIT_Y = 320;\r
 \r
-static const int16 EXIT_BUTTON_BIND_X = 233;\r
-static const int16 EXIT_BUTTON_BIND_Y = 312;\r
+static const int16 EXIT_BUTTON_BIND_X = 238;\r
+static const int16 EXIT_BUTTON_BIND_Y = 320;\r
 \r
 static const char *UNBIND_BUTTON_TEXT_FIRST = (char *)"确认";\r
 static const char *UNBIND_BUTTON_TEXT_SECOND = (char *)"取消";\r
 \r
-static const int16 EXIT_BUTTON_WIDTH = 169;\r
-static const int16 EXIT_BUTTON_HEIGHT = 73;\r
-static const int16 EXIT_BUTTON_FONT = 38;\r
+static const int16 EXIT_BUTTON_WIDTH = 170;\r
+static const int16 EXIT_BUTTON_HEIGHT = 90;\r
+static const int16 EXIT_BUTTON_FONT = 26;\r
 \r
 AlipayUnbind::AlipayUnbind(AlipayPresenter *presenter)\r
 {\r
@@ -64,6 +66,11 @@ AlipayUnbind::~AlipayUnbind()
             alipayButton[buttonNum] = nullptr;\r
         }\r
     }\r
+    if(AttentionImage)\r
+    {\r
+        delete AttentionImage;\r
+        AttentionImage =nullptr;\r
+    }\r
 }\r
 \r
 bool AlipayUnbind::AlipayInitLabel()\r
@@ -80,7 +87,7 @@ bool AlipayUnbind::AlipayInitLabel()
     alipayLabel[ALIPAY_SET_ZERO]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_FIRST);\r
     alipayLabel[ALIPAY_SET_ZERO]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_FIRST);\r
     alipayLabel[ALIPAY_SET_ZERO]->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    alipayLabel[ALIPAY_SET_ZERO]->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+    alipayLabel[ALIPAY_SET_ZERO]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
 \r
     Add(alipayLabel[ALIPAY_SET_ZERO]);\r
 \r
@@ -93,11 +100,25 @@ bool AlipayUnbind::AlipayInitLabel()
         EXIT_LABEL_HEIGHT_SEC);\r
     alipayLabel[ALIPAY_SET_ONE]->SetText(UNBIND_LABEL_TEXT_SECOND);\r
     alipayLabel[ALIPAY_SET_ONE]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, EXIT_LABEL_FONT_SEC);\r
-    alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_LINE_SPACE, 12);\r
-    alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_SEC);\r
+    //alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_LINE_SPACE, 12);\r
+    //alipayLabel[ALIPAY_SET_ONE]->SetStyle(STYLE_TEXT_FONT, EXIT_LABEL_FONT_SEC);\r
+    alipayLabel[ALIPAY_SET_ONE]->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xFF));\r
+    alipayLabel[ALIPAY_SET_ONE]->SetAlign(TEXT_ALIGNMENT_CENTER);\r
     alipayLabel[ALIPAY_SET_ONE]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
     Add(alipayLabel[ALIPAY_SET_ONE]);\r
 \r
+    AttentionImage=new UIImageView();\r
+    if (AttentionImage == nullptr)\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemFactoryResetView::new FactoryResetImage fail!");\r
+        return false;\r
+    }\r
+    AttentionImage->SetPosition(193, 110);\r
+    AttentionImage->SetSrc(PNG_ATTENTION_IMAGE);\r
+    Add(AttentionImage);\r
+\r
+\r
+\r
     return true;\r
 }\r
 \r
@@ -110,11 +131,12 @@ bool AlipayUnbind::InitSimilarButton(int16 num, int16 alipayX, int16 alipayY, co
     }\r
     int64_t backColor = 0;\r
     if (num == 0) {\r
-        backColor = 0xff4a83bf;\r
-        alipayButton[num]->SetTextColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0xff));\r
-        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+        backColor = 0xff191919;\r
+        //alipayButton[num]->SetTextColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0x19));\r
+        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
     } else if (num == 1) {\r
-        backColor = 0xff0b1928;\r
+        backColor = 0xff0176ff;\r
+        alipayButton[num]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff0176ff);\r
     }\r
     alipayButton[num]->SetPosition(alipayX, alipayY, EXIT_BUTTON_WIDTH, EXIT_BUTTON_HEIGHT);\r
     alipayButton[num]->SetText(buttonStr);\r
index 817d90b..9a3c629 100644 (file)
@@ -8,8 +8,8 @@
 #include "UiConfig.h"\r
 #include <string>\r
 #include "cmsis_os.h"\r
-#include "AlipayUnbindFinish.h"\r
-\r
+// #include "AlipayUnbindFinish.h"\r
+#include "alipay/include/AlipayUnbindFinish.h"\r
 namespace OHOS {\r
 static AlipayUnbindFinish *g_alipayUnbindFinish = nullptr;\r
 \r
@@ -19,23 +19,23 @@ static const char *UNBIND_FINISH_TEXT =
 \r
 static const char *UNBIND_FINISH_BUTTON = (char *)"确认";\r
 \r
-static const int16 UNBIND_FINISH_TITLE_FONT = 38;\r
-static const int16 UNBIND_FINISH_TITLE_X = 0;\r
-static const int16 UNBIND_FINISH_TITLE_Y = 35;\r
-static const int16 UNBIND_FINISH_TITLE_WIDTH = 454;\r
-static const int16 UNBIND_FINISH_TITLE_HEIGHT = 53;\r
+static const int16 UNBIND_FINISH_TITLE_FONT = 30;\r
+static const int16 UNBIND_FINISH_TITLE_X = (HORIZONTAL_RESOLUTION - 300) / 2;\r
+static const int16 UNBIND_FINISH_TITLE_Y = 50;\r
+static const int16 UNBIND_FINISH_TITLE_WIDTH = 300;\r
+static const int16 UNBIND_FINISH_TITLE_HEIGHT = 35;\r
 \r
 static const int16 UNBIND_FINISH_TEXT_FONT = 30;\r
-static const int16 UNBIND_FINISH_TEXT_X = 38;\r
-static const int16 UNBIND_FINISH_TEXT_Y = 126;\r
-static const int16 UNBIND_FINISH_TEXT_WIDTH = 380;\r
-static const int16 UNBIND_FINISH_TEXT_HEIGHT = 166;\r
+static const int16 UNBIND_FINISH_TEXT_X = (HORIZONTAL_RESOLUTION - 360) / 2 ;\r
+static const int16 UNBIND_FINISH_TEXT_Y = 130;\r
+static const int16 UNBIND_FINISH_TEXT_WIDTH = 360;\r
+static const int16 UNBIND_FINISH_TEXT_HEIGHT = 140;\r
 \r
-static const int16 UNBIND_FINISH_BUTTON_FONT = 38;\r
-static const int16 UNBIND_FINISH_BUTTON_X = 120;\r
-static const int16 UNBIND_FINISH_BUTTON_Y = 320;\r
-static const int16 UNBIND_FINISH_BUTTON_WIDTH = 212;\r
-static const int16 UNBIND_FINISH_BUTTON_HEIGHT = 73;\r
+static const int16 UNBIND_FINISH_BUTTON_FONT = 30;\r
+static const int16 UNBIND_FINISH_BUTTON_X = (HORIZONTAL_RESOLUTION - 280) / 2;\r
+static const int16 UNBIND_FINISH_BUTTON_Y = 315;\r
+static const int16 UNBIND_FINISH_BUTTON_WIDTH = 280;\r
+static const int16 UNBIND_FINISH_BUTTON_HEIGHT = 90;\r
 \r
 AlipayUnbindFinish::AlipayUnbindFinish(AlipayPresenter *presenter)\r
 {\r
@@ -79,20 +79,21 @@ bool AlipayUnbindFinish::AlipayInitLabel(void)
 \r
     Add(titleUnbind);\r
 \r
-    titleUnbind = new UILabel();\r
-    if (titleUnbind == nullptr) {\r
+    textUnbind = new UILabel();\r
+    if (textUnbind == nullptr) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayUnbindFinish::AlipayInitLabel new label fail");\r
         return false;\r
     }\r
-    titleUnbind->SetText(UNBIND_FINISH_TEXT);\r
-    titleUnbind->SetFont(DEFAULT_VECTOR_FONT_FILENAME, UNBIND_FINISH_TEXT_FONT);\r
-    titleUnbind->SetPosition(UNBIND_FINISH_TEXT_X, UNBIND_FINISH_TEXT_Y, UNBIND_FINISH_TEXT_WIDTH,\r
+    textUnbind->SetText(UNBIND_FINISH_TEXT);\r
+    textUnbind->SetFont(DEFAULT_VECTOR_FONT_FILENAME, UNBIND_FINISH_TEXT_FONT);\r
+    textUnbind->SetPosition(UNBIND_FINISH_TEXT_X, UNBIND_FINISH_TEXT_Y, UNBIND_FINISH_TEXT_WIDTH,\r
         UNBIND_FINISH_TEXT_HEIGHT);\r
-    titleUnbind->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
-    titleUnbind->SetStyle(STYLE_TEXT_FONT, UNBIND_FINISH_TEXT_FONT);\r
-    titleUnbind->SetStyle(STYLE_LINE_SPACE, 6);\r
-\r
-    Add(titleUnbind);\r
+    textUnbind->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+    textUnbind->SetStyle(STYLE_TEXT_FONT, UNBIND_FINISH_TEXT_FONT);\r
+    // textUnbind->SetStyle(STYLE_LINE_SPACE, 6);\r
+    textUnbind->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xFF));\r
+    textUnbind->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+    Add(textUnbind);\r
 \r
     return true;\r
 }\r
index a6c141f..2d450a2 100644 (file)
@@ -119,14 +119,10 @@ REGIST_SLICE(VIEW_APPLIST, ApplistView, ApplistPresenter);
         }
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnClick viewid = %d", viewId);
         if (viewId < VIEW_MAX_INTER_APP) {
-#ifdef FD230_650
             if (viewId == VIEW_SETTING && style == AppListStyle::APPLIST_STYLE) {
-                //TODO EnterSlice 需要适配新函数 需要增加新特效 是否增加?
-                NativeAbility::GetInstance().ChangeSlice(viewId, type, gSliceDefaultPriority, true); 
-            } else 
- #endif
-            {
-                NativeAbility::GetInstance().EnterSlice(viewId, type);
+                NativeAbility::GetInstance().EnterSlice(viewId, type, gSliceDefaultPriority, true); 
+            } else {
+                NativeAbility::GetInstance().EnterSlice(viewId, type, gSliceDefaultPriority, true);
             }
             return true;
         } else if (viewId == VIEW_EXTERN_APP) {
index ccf1414..e39d1e2 100644 (file)
@@ -55,7 +55,7 @@
 //#include "hfp_hf_service.h"\r
 #include "uiservice/include/ui_service.h"\r
 #include "PhoneService.h"\r
-#ifdef SUPPORT_AT_OHOSFWK\r
+#ifdef SUPPORT_OHOSFWK\r
 #include "BluetoothWrapper.h"\r
 #endif\r
 #include "Bluetooyhpabpserver.h"\r
index cef7b17..5c0a1ea 100644 (file)
@@ -35,6 +35,7 @@ void KeyInputListener::OnKeyPress(const KeyEvent &event)
 {
     pressFlag = 1; // 短按标志
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnKeyPress: pressFlag = %d", pressFlag);
+    #if 0
     uint16_t currentViewId = NativeAbility::GetInstance().GetCurSliceId();
     uint16 keyID = event.GetKeyId();
     if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
@@ -44,6 +45,7 @@ void KeyInputListener::OnKeyPress(const KeyEvent &event)
             HandlePowerKeyPress(currentViewId);
         }
     }
+    #endif
     return;
 }
 
@@ -61,6 +63,13 @@ void KeyInputListener::OnKeyRelease(const KeyEvent& event)
     uint16 keyID = event.GetKeyId();
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnKeyRelease: keyID = %d, currentViewId = %d, longPressFlag = %d, pressFlag = %d", 
                 keyID, currentViewId, longPressFlag, pressFlag);
+    if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
+    {
+        if (longPressFlag == 0 && pressFlag == 1)
+        {
+            HandlePowerKeyPress(currentViewId);
+        }
+    }
     // 重置标志
     pressFlag = 0;
     longPressFlag = 0;
index 90913ce..2b41e69 100644 (file)
@@ -124,7 +124,7 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDragEnd");
         if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG)
         {
-            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+            NativeAbility::GetInstance().Back();
             X_DRAG_FLAG = false;
         }
         return true;
@@ -133,12 +133,12 @@ namespace OHOS
     // 增加按键事件
     bool SettingPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnKeyAct");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnKeyAct");
         uint16 keyID = event.GetKeyId();
         uint16 keyState = event.GetState();
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
         {
-            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+            NativeAbility::GetInstance().Back();
         }
         return true;
     }
index e8fe9f7..f67b80d 100644 (file)
@@ -204,7 +204,7 @@ namespace OHOS
     void SettingView:: RefreshSettingList(const SettingItem *item){
         for (uint8_t i = 0; i < SettingModel::GetInstance().GetSettingListNum(); i++)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnStart itemInfo[i].itemName:%d", i);
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnStart itemInfo[i].itemName:%d", i);
             AddSettingItemToList(item[i]);
         }
         contentList->SetAdapter(listAdapter);
index f22a6bb..3db4102 100644 (file)
Binary files a/code/sdk/vendor/alipay_sdk/alipay_sec_sdk_v3.0.0/lib/rv70_llvm/fwk/device_certificate/lib/libfwk_device_certificate_rv70_llvm.a and b/code/sdk/vendor/alipay_sdk/alipay_sec_sdk_v3.0.0/lib/rv70_llvm/fwk/device_certificate/lib/libfwk_device_certificate_rv70_llvm.a differ
index 19ac74f..357aee4 100644 (file)
-#include "IIC_Master_Driver.h"\r
-#include "hs_private.h"\r
-\r
-unsigned char *g_HSI2CBuf;\r
-unsigned char gHSEncTransSign; //ͨÐÅÊÇ·ñ¼ÓÃÜ£¬0 = Ã÷ÎÄͨÐÅ£¬1 = ¼ÓÃÜͨÐÅ\r
-unsigned char g_DefTransKey[16] = {0x54,0x8E,0x8D,0x7A,0x26,0x35,0x85,0x11,0x25,0x2E,0xF8,0xD6,0xB7,0x17,0xA4,0xE4};\r
-unsigned char g_TransTmpKey[16];\r
-\r
-//extern unsigned char * IIC_Master_Init(void);\r
-\r
-//extern void IIC_Master_Send(unsigned char byAddr, unsigned char *pData, unsigned short wLen);\r
-\r
-//extern void IIC_Master_Receive(unsigned char byAddr, unsigned char *pData, unsigned short wLen);\r
-\r
-\r
-\r
-\r
-//CRCµ¥×Ö½Ú¼ÆË㡪¡ªÑ­»·×óÒÆ£¬ÏÈÒÆ×î¸ßbit\r
-unsigned short LeftShift_CRC(unsigned char byValue, unsigned short *lpwCrc)\r
-{\r
-       byValue ^= (unsigned char)(*lpwCrc>>8);\r
-       byValue ^= (byValue>>4);\r
-\r
-       *lpwCrc = (*lpwCrc<<8) ^ (unsigned short)(byValue);\r
-       *lpwCrc ^= (unsigned short)byValue<<12;\r
-       *lpwCrc ^= (unsigned short)byValue<<5;\r
-\r
-       return (*lpwCrc);\r
-}\r
-\r
-void ComputeCRC(unsigned char *Data, unsigned short Length, unsigned char *pbyOut)\r
-{\r
-       unsigned char chBlock;\r
-       unsigned short wCrc;\r
-       \r
-       wCrc = 0x0000; // ITU-V.41\r
-       \r
-       while(Length--)\r
-       {\r
-               chBlock = *Data++;\r
-               LeftShift_CRC(chBlock, &wCrc);\r
-       }\r
-       \r
-       pbyOut[0] = (unsigned char) ((wCrc >> 8) & 0xFF);\r
-       pbyOut[1] = (unsigned char) (wCrc & 0xFF);\r
-       \r
-       return;\r
-}\r
-\r
-void lmemset(unsigned char *pBuf, unsigned char byVal, unsigned short wLen)\r
-{\r
-    unsigned short i;\r
-    \r
-    for(i=0; i<wLen; ++i)\r
-    {\r
-        pBuf[i] = byVal;\r
-    }\r
-    return ;\r
-}\r
-\r
-void lmemcpy(unsigned char *pDst, unsigned char *pSrc, unsigned short wLen)\r
-{\r
-       unsigned short i;\r
-\r
-       if((pSrc == pDst) || (wLen == 0))\r
-       {\r
-               return;\r
-       }\r
-\r
-       if(pSrc < pDst)\r
-       {\r
-               for(i = wLen-1; i != 0; --i)\r
-               {\r
-                       pDst[i] = pSrc[i];\r
-               }\r
-               pDst[0] = pSrc[0];\r
-       }\r
-       else\r
-       {\r
-               for(i = 0; i < wLen; ++i)\r
-               {\r
-                       pDst[i] = pSrc[i];\r
-               }\r
-       }\r
-\r
-       return ;\r
-}\r
-\r
-//Ïàͬ·µ»Ø0£¬²»Í¬·µ»Ø1\r
-unsigned char lmemcmp(unsigned char *pBuf1, unsigned char *pBuf2, unsigned short wLen)\r
-{\r
-       unsigned short i;\r
-\r
-       for(i=0; i<wLen; ++i)\r
-       {\r
-               if(pBuf1[i] != pBuf2[i])\r
-               {\r
-                       return 1;\r
-               }\r
-       }\r
-\r
-       return 0;\r
-}\r
-\r
-void HS_IIC_Init(void)\r
-{\r
-       unsigned char ver[29];\r
-       unsigned char i;\r
-\r
-       gHSEncTransSign = 0x00;\r
-       lmemset(g_TransTmpKey, 0x00, 16);\r
-       \r
-       g_HSI2CBuf = IIC_Master_Init();\r
-\r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x05;\r
-       g_HSI2CBuf[2] = 0x00;\r
-       g_HSI2CBuf[3] = 0xCA;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = 0x00;\r
-       ComputeCRC(g_HSI2CBuf, 7, g_HSI2CBuf+7);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, 9);\r
-       if(0 != HS_IIC_Recv_Resp(ver, 29))//Èç¹û»ñÈ¡³õÖµÃÜÔ¿Ö¸ÁîÖ´ÐÐÒì³££¬¾ÍÓÃ16×Ö½ÚFF½øÐмÓÃÜͨÐÅ\r
-       {\r
-               gHSEncTransSign = 0x01;\r
-               lmemset(g_TransTmpKey, 0xFF, 16);\r
-               return ;\r
-       }\r
-\r
-       if((ver[0] == 0x80) && (ver[1] == 0x10) && (ver[18] == 0x81) && (ver[19] == 0x02))//¼òµ¥µÄ¼ì²éÒ»ÏÂÊý¾Ý¸ñʽÄÚÈÝ\r
-       {\r
-               if((ver[20] != 0x10) || (ver[21] != 0x03))\r
-               {\r
-                       gHSEncTransSign = 0x01;\r
-                       for(i=0; i<16; ++i)\r
-                       {\r
-                               g_TransTmpKey[i] = ver[2+i] ^ g_DefTransKey[i];\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               gHSEncTransSign = 0x01;\r
-               lmemset(g_TransTmpKey, 0xFF, 16);\r
-       }\r
-}\r
-\r
-//·¢ËÍ:        C8 + LEN(2) + { ÃüÁî¼°Êý¾Ý} ^ g_TransTmpKey + CRC\r
-//·µ»ØFALSE±íʾ½ÓÊÕÖ¸Áî»òÊý¾ÝCRCУÑé´íÎó\r
-int HS_IIC_Send_Cmd(unsigned char *pData, unsigned short wLen)\r
-{\r
-       return IIC_Master_Send(0xC8, pData, wLen);\r
-}\r
-\r
-//½ÓÊÕ:        C9 + 55\r
-//                     C9 + LEN(2) + { ÏìÓ¦Êý¾Ý+ ×´Ì¬×Ö} ^ g_TransTmpKey + CRC\r
-\r
-//¹¦ÄÜ:        ½ÓÊÕwLen³¤¶ÈµÄÊý¾Ý£¬µ½pData»º³åÇøÖÐ\r
-//·µ»Ø:\r
-//                     0 ±íʾÕýÈ·½ÓÊÕ\r
-//                     1 ±íʾ½ÓÊÕÊý¾ÝCRC´íÎó\r
-//                     2 ±íʾʵ¼Ê½ÓÊÕÊý¾Ý³¤¶ÈÓò²»ÊÇwLen\r
-//                     3 ±íʾָÁî·µ»Ø×´Ì¬×Ö²»ÊÇ9000\r
-//                     4 ±íʾָÁʱδÏìÓ¦\r
-unsigned char HS_IIC_Recv_Resp(unsigned char *pData, unsigned short wLen)\r
-{\r
-       unsigned short wRspLen;\r
-       unsigned char crc[2];\r
-       unsigned int dwCnt;\r
-       unsigned short i;\r
-\r
-       \r
-       g_HSI2CBuf[0] = 0x00;\r
-       dwCnt = 0;\r
-       while(g_HSI2CBuf[0] != 0x55)\r
-       {\r
-               ++dwCnt;\r
-               if(dwCnt > 0x1000)\r
-               {\r
-                       return 4;\r
-               }\r
-               IIC_Master_Receive(0xC9, g_HSI2CBuf, 1);\r
-       }\r
-\r
-       IIC_Master_Receive(0xC9, g_HSI2CBuf, wLen+6);\r
-    \r
-       wRspLen = g_HSI2CBuf[0];\r
-       wRspLen <<= 8;\r
-       wRspLen |= g_HSI2CBuf[1];\r
-       if(wRspLen != wLen+2)\r
-       {\r
-               return 2;\r
-       }\r
-       \r
-       ComputeCRC(g_HSI2CBuf+2, wLen+2, crc);\r
-       if((g_HSI2CBuf[wLen+4] != crc[0]) || (g_HSI2CBuf[wLen+5] != crc[1]))\r
-       {\r
-               return 1;\r
-       }\r
-\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-               for(i=0; i<wLen+2; ++i)\r
-               {\r
-                       g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];\r
-               }\r
-       }\r
-       if((g_HSI2CBuf[2+wLen] != 0x90) || (g_HSI2CBuf[3+wLen] != 0x00))//״̬×Ö\r
-       {\r
-               pData[0] = g_HSI2CBuf[2+wLen];\r
-               pData[1] = g_HSI2CBuf[3+wLen];\r
-\r
-               return 3;\r
-       }\r
-\r
-       lmemcpy(pData, g_HSI2CBuf+2, wLen);\r
-\r
-       return 0;\r
-}\r
-\r
-\r
+#include "IIC_Master_Driver.h"
+#include "hs_private.h"
+
+unsigned char *g_HSI2CBuf;
+unsigned char gHSEncTransSign; //通信是否加密,0 = 明文通信,1 = 加密通信
+unsigned char g_DefTransKey[16] = {0x54,0x8E,0x8D,0x7A,0x26,0x35,0x85,0x11,0x25,0x2E,0xF8,0xD6,0xB7,0x17,0xA4,0xE4};
+unsigned char g_TransTmpKey[16];
+
+//extern unsigned char * IIC_Master_Init(void);
+
+//extern void IIC_Master_Send(unsigned char byAddr, unsigned char *pData, unsigned short wLen);
+
+//extern void IIC_Master_Receive(unsigned char byAddr, unsigned char *pData, unsigned short wLen);
+
+
+
+
+//CRC单字节计算——循环左移,先移最高bit
+unsigned short LeftShift_CRC(unsigned char byValue, unsigned short *lpwCrc)
+{
+       byValue ^= (unsigned char)(*lpwCrc>>8);
+       byValue ^= (byValue>>4);
+
+       *lpwCrc = (*lpwCrc<<8) ^ (unsigned short)(byValue);
+       *lpwCrc ^= (unsigned short)byValue<<12;
+       *lpwCrc ^= (unsigned short)byValue<<5;
+
+       return (*lpwCrc);
+}
+
+void ComputeCRC(unsigned char *Data, unsigned short Length, unsigned char *pbyOut)
+{
+       unsigned char chBlock;
+       unsigned short wCrc;
+       
+       wCrc = 0x0000; // ITU-V.41
+       
+       while(Length--)
+       {
+               chBlock = *Data++;
+               LeftShift_CRC(chBlock, &wCrc);
+       }
+       
+       pbyOut[0] = (unsigned char) ((wCrc >> 8) & 0xFF);
+       pbyOut[1] = (unsigned char) (wCrc & 0xFF);
+       
+       return;
+}
+
+void lmemset(unsigned char *pBuf, unsigned char byVal, unsigned short wLen)
+{
+    unsigned short i;
+    
+    for(i=0; i<wLen; ++i)
+    {
+        pBuf[i] = byVal;
+    }
+    return ;
+}
+
+void lmemcpy(unsigned char *pDst, unsigned char *pSrc, unsigned short wLen)
+{
+       unsigned short i;
+
+       if((pSrc == pDst) || (wLen == 0))
+       {
+               return;
+       }
+
+       if(pSrc < pDst)
+       {
+               for(i = wLen-1; i != 0; --i)
+               {
+                       pDst[i] = pSrc[i];
+               }
+               pDst[0] = pSrc[0];
+       }
+       else
+       {
+               for(i = 0; i < wLen; ++i)
+               {
+                       pDst[i] = pSrc[i];
+               }
+       }
+
+       return ;
+}
+
+//相同返回0,不同返回1
+unsigned char lmemcmp(unsigned char *pBuf1, unsigned char *pBuf2, unsigned short wLen)
+{
+       unsigned short i;
+
+       for(i=0; i<wLen; ++i)
+       {
+               if(pBuf1[i] != pBuf2[i])
+               {
+                       return 1;
+               }
+       }
+
+       return 0;
+}
+
+void HS_IIC_Init(void)
+{
+       unsigned char ver[29];
+       unsigned char i;
+
+       gHSEncTransSign = 0x00;
+       lmemset(g_TransTmpKey, 0x00, 16);
+       
+       g_HSI2CBuf = IIC_Master_Init();
+
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x05;
+       g_HSI2CBuf[2] = 0x00;
+       g_HSI2CBuf[3] = 0xCA;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = 0x00;
+       ComputeCRC(g_HSI2CBuf, 7, g_HSI2CBuf+7);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, 9);
+       if(0 != HS_IIC_Recv_Resp(ver, 29))//如果获取初值密钥指令执行异常,就用16字节FF进行加密通信
+       {
+               gHSEncTransSign = 0x01;
+               lmemset(g_TransTmpKey, 0xFF, 16);
+               return ;
+       }
+
+       if((ver[0] == 0x80) && (ver[1] == 0x10) && (ver[18] == 0x81) && (ver[19] == 0x02))//简单的检查一下数据格式内容
+       {
+               if((ver[20] != 0x10) || (ver[21] != 0x03))
+               {
+                       gHSEncTransSign = 0x01;
+                       for(i=0; i<16; ++i)
+                       {
+                               g_TransTmpKey[i] = ver[2+i] ^ g_DefTransKey[i];
+                       }
+               }
+       }
+       else
+       {
+               gHSEncTransSign = 0x01;
+               lmemset(g_TransTmpKey, 0xFF, 16);
+       }
+}
+
+//发送:      C8 + LEN(2) + { 命令及数据} ^ g_TransTmpKey + CRC
+//返回FALSE表示接收指令或数据CRC校验错误
+int HS_IIC_Send_Cmd(unsigned char *pData, unsigned short wLen)
+{
+       return IIC_Master_Send(0xC8, pData, wLen);
+}
+
+//接收:      C9 + 55
+//                     C9 + LEN(2) + { 响应数据+ 状态字} ^ g_TransTmpKey + CRC
+
+//功能:      接收wLen长度的数据,到pData缓冲区中
+//返回:
+//                     0 表示正确接收
+//                     1 表示接收数据CRC错误
+//                     2 表示实际接收数据长度域不是wLen
+//                     3 表示指令返回状态字不是9000
+//                     4 表示指令超时未响应
+unsigned char HS_IIC_Recv_Resp(unsigned char *pData, unsigned short wLen)
+{
+       unsigned short wRspLen;
+       unsigned char crc[2];
+       unsigned int dwCnt;
+       unsigned short i;
+
+       
+       g_HSI2CBuf[0] = 0x00;
+       dwCnt = 0;
+       while(g_HSI2CBuf[0] != 0x55)
+       {
+               ++dwCnt;
+               if(dwCnt > 0x1000)
+               {
+                       return 4;
+               }
+               IIC_Master_Receive(0xC9, g_HSI2CBuf, 1);
+       }
+
+       IIC_Master_Receive(0xC9, g_HSI2CBuf, wLen+6);
+    
+       wRspLen = g_HSI2CBuf[0];
+       wRspLen <<= 8;
+       wRspLen |= g_HSI2CBuf[1];
+       if(wRspLen != wLen+2)
+       {
+               return 2;
+       }
+       
+       ComputeCRC(g_HSI2CBuf+2, wLen+2, crc);
+       if((g_HSI2CBuf[wLen+4] != crc[0]) || (g_HSI2CBuf[wLen+5] != crc[1]))
+       {
+               return 1;
+       }
+
+       if(gHSEncTransSign == 0x01)
+       {
+               for(i=0; i<wLen+2; ++i)
+               {
+                       g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];
+               }
+       }
+       if((g_HSI2CBuf[2+wLen] != 0x90) || (g_HSI2CBuf[3+wLen] != 0x00))//状态字
+       {
+               pData[0] = g_HSI2CBuf[2+wLen];
+               pData[1] = g_HSI2CBuf[3+wLen];
+
+               return 3;
+       }
+
+       lmemcpy(pData, g_HSI2CBuf+2, wLen);
+
+       return 0;
+}
+
+
index 0243c43..584e604 100644 (file)
@@ -1,27 +1,27 @@
-#ifndef        __HS_PRIVATE_H__\r
-#define        __HS_PRIVATE_H__\r
-\r
-\r
-\r
-extern unsigned char *g_HSI2CBuf;\r
-extern unsigned char gHSEncTransSign;\r
-extern unsigned char g_DefTransey[16];\r
-extern unsigned char g_TransTmpKey[16];\r
-\r
-\r
-//CRCµ¥×Ö½Ú¼ÆË㡪¡ªÑ­»·×óÒÆ£¬ÏÈÒÆ×î¸ßbit\r
-extern unsigned short LeftShift_CRC(unsigned char byValue, unsigned short *lpwCrc);\r
-extern void ComputeCRC(unsigned char *Data, unsigned short Length, unsigned char *pbyOut);\r
-extern void lmemset(unsigned char *pBuf, unsigned char byVal, unsigned short wLen);\r
-extern void lmemcpy(unsigned char *pDst, unsigned char *pSrc, unsigned short wLen);\r
-extern unsigned char lmemcmp(unsigned char *pBuf1, unsigned char *pBuf2, unsigned short wLen);\r
-\r
-\r
-extern void HS_IIC_Init(void);\r
-extern int HS_IIC_Send_Cmd(unsigned char *pData, unsigned short wLen);\r
-extern unsigned char HS_IIC_Recv_Resp(unsigned char *pData, unsigned short wLen);\r
-\r
-extern void Delay_Ms(unsigned char byMilliSec);\r
-extern void Set_GPIO_State(unsigned char byState );\r
-\r
-#endif\r
+#ifndef        __HS_PRIVATE_H__
+#define        __HS_PRIVATE_H__
+
+
+
+extern unsigned char *g_HSI2CBuf;
+extern unsigned char gHSEncTransSign;
+extern unsigned char g_DefTransey[16];
+extern unsigned char g_TransTmpKey[16];
+
+
+//CRC单字节计算——循环左移,先移最高bit
+extern unsigned short LeftShift_CRC(unsigned char byValue, unsigned short *lpwCrc);
+extern void ComputeCRC(unsigned char *Data, unsigned short Length, unsigned char *pbyOut);
+extern void lmemset(unsigned char *pBuf, unsigned char byVal, unsigned short wLen);
+extern void lmemcpy(unsigned char *pDst, unsigned char *pSrc, unsigned short wLen);
+extern unsigned char lmemcmp(unsigned char *pBuf1, unsigned char *pBuf2, unsigned short wLen);
+
+
+extern void HS_IIC_Init(void);
+extern int HS_IIC_Send_Cmd(unsigned char *pData, unsigned short wLen);
+extern unsigned char HS_IIC_Recv_Resp(unsigned char *pData, unsigned short wLen);
+
+extern void Delay_Ms(unsigned char byMilliSec);
+extern void Set_GPIO_State(unsigned char byState );
+
+#endif
index 23e5621..89261f9 100644 (file)
-\r
-#include "hs_private.h"\r
-#include "iotsec.h"\r
-\r
-//--------------------------------------------------------------------------\r
-//\r
-//                                                                     °æ±¾V2.0.00\r
-//\r
-//--------------------------------------------------------------------------\r
-\r
-\r
-\r
-\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö »ñÈ¡¶ÁÈ¡×ʲúµÄÎļþ¾ä±ú\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö fd  - ´æ·Å×ʲú¾ä±ú\r
-    ¡ö asset_name - ×ʲúÃû×Ö\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_open_asset(void **fd, char asset_name[36])\r
-{\r
-       unsigned char tmpBuf[10];\r
-       unsigned char i;\r
-       unsigned short j;\r
-\r
-       for(i=0; i<36; ++i)\r
-       {\r
-               if(asset_name[i] == 0)\r
-               {\r
-                       break;\r
-               }\r
-       }\r
-\r
-       if((fd == 0) || (i == 0))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-       \r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = i+5;\r
-       g_HSI2CBuf[2] = 0x80;\r
-       g_HSI2CBuf[3] = 0xE0;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = i;\r
-       lmemcpy(g_HSI2CBuf+7, (unsigned char *)asset_name, i);\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(j=0; j<i+5; ++j)\r
-           {\r
-               g_HSI2CBuf[2+j] ^= g_TransTmpKey[j % 16];\r
-           }\r
-       }\r
-       ComputeCRC(g_HSI2CBuf, i+7, g_HSI2CBuf+i+7);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, i+9);\r
-       if(0 != HS_IIC_Recv_Resp(tmpBuf, 2))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       *fd = (void*)(tmpBuf[0] * 256 + tmpBuf[1]);     //ÎļþµØÖ·\r
-       return CSI_OK;\r
-}\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö Ð´ÈëÖ¸¶¨µÄ×ʲú\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö fd  - ´æ·Å×ʲú¾ä±ú\r
-    ¡ö offset - ×ʲúÊý¾ÝÆ«ÒÆ\r
-    ¡ö buffer - ´æ·Å×ʲúÊý¾Ý»º³åÇø\r
-    ¡ö data_len - Ð´Èë×ʲúÊý¾Ý¸öÊý\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_write_asset(void* fd,uint32_t offset,void *data,uint32_t data_len)\r
-{\r
-    unsigned int dwBufOff;\r
-       unsigned char abyBuf[10];\r
-       unsigned short i;\r
-\r
-       if(offset+data_len > 4096)\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-       if(data == 0)\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-       \r
-       //Ïȸù¾ÝfdÑ¡ÔñÎļþ\r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x07;\r
-       g_HSI2CBuf[2] = 0x00;\r
-       g_HSI2CBuf[3] = 0xA4;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = 0x02;\r
-       g_HSI2CBuf[7] = (unsigned char)((unsigned int)fd / 256);\r
-       g_HSI2CBuf[8] = (unsigned int)fd % 256;\r
-\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<7; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-           }\r
-       }\r
-\r
-       ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, 11);\r
-       if(0 != HS_IIC_Recv_Resp(abyBuf, 2))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       if(data_len == 0)\r
-       {\r
-               return CSI_OK;\r
-       }\r
-\r
-    dwBufOff = 0;\r
-       while(data_len > 1024)\r
-       {\r
-               g_HSI2CBuf[0] = 0x04;\r
-               g_HSI2CBuf[1] = 0x07;\r
-               g_HSI2CBuf[2] = 0x00;\r
-               g_HSI2CBuf[3] = 0xd6;\r
-               g_HSI2CBuf[4] = (unsigned char)(offset / 256);\r
-               g_HSI2CBuf[5] = (unsigned char)(offset % 256);\r
-               g_HSI2CBuf[6] = 0x00;\r
-               g_HSI2CBuf[7] = 0x04;\r
-               g_HSI2CBuf[8] = 0x00;\r
-               lmemcpy(g_HSI2CBuf+9, (unsigned char *)data + dwBufOff, 1024);\r
-               \r
-               if(gHSEncTransSign == 0x01)\r
-               {\r
-                       for(i=0; i<1031; ++i)\r
-               {\r
-                   g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];\r
-               }\r
-               }\r
-\r
-               ComputeCRC(g_HSI2CBuf, 1033, g_HSI2CBuf+1033);\r
-               HS_IIC_Send_Cmd(g_HSI2CBuf, 1035);\r
-               if(0 != HS_IIC_Recv_Resp(abyBuf, 0))\r
-               {\r
-                       return CSI_ERROR;\r
-               }\r
-               offset += 1024;\r
-               data_len -= 1024;\r
-               dwBufOff += 1024;\r
-       }\r
-\r
-       g_HSI2CBuf[0] = (unsigned char)((data_len+7) / 256);\r
-       g_HSI2CBuf[1] = (unsigned char)((data_len+7) % 256);\r
-       g_HSI2CBuf[2] = 0x80;\r
-       g_HSI2CBuf[3] = 0xd6;\r
-       g_HSI2CBuf[4] = (unsigned char)(offset / 256);\r
-       g_HSI2CBuf[5] = (unsigned char)(offset % 256);\r
-       g_HSI2CBuf[6] = 0x00;\r
-       g_HSI2CBuf[7] = (unsigned char)(data_len / 256);\r
-       g_HSI2CBuf[8] = (unsigned char)(data_len % 256);\r
-       lmemcpy(g_HSI2CBuf+9, (unsigned char *)data + dwBufOff, data_len);\r
-\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<data_len+7; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];\r
-           }\r
-       }\r
-\r
-       ComputeCRC(g_HSI2CBuf, data_len+9, g_HSI2CBuf+data_len+9);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, data_len+11);\r
-       if(0 != HS_IIC_Recv_Resp(abyBuf, 0))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-       \r
-       return CSI_OK;\r
-}\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö ¶Áȡָ¶¨µÄ×ʲú\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö fd  - ´æ·Å×ʲú¾ä±ú\r
-    ¡ö offset - ×ʲúÊý¾ÝÆ«ÒÆ\r
-    ¡ö buffer - ´æ·Å×ʲúÊý¾Ý»º³åÇø\r
-    ¡ö data_len - ·µ»Ø¶ÁÈ¡×ʲúÊý¾Ý¸öÊý\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_read_asset(void* fd,uint32_t offset,void *buffer,uint32_t* data_len)\r
-{\r
-       unsigned int dwOff;\r
-       unsigned char abyBuf[10];\r
-       unsigned short wFileLen;\r
-       uint32_t dwTmpLen;\r
-       unsigned short i;\r
-\r
-       \r
-       if(*data_len == 0)\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       if(buffer == 0)\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-       \r
-\r
-       //Ïȸù¾ÝfdÑ¡ÔñÎļþ\r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x07;\r
-       g_HSI2CBuf[2] = 0x00;\r
-       g_HSI2CBuf[3] = 0xA4;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = 0x02;\r
-       g_HSI2CBuf[7] = (unsigned char)((unsigned int)fd / 256);\r
-       g_HSI2CBuf[8] = (unsigned int)fd % 256;\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<7; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-           }\r
-       }\r
-\r
-       ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, 11);\r
-       if(0 != HS_IIC_Recv_Resp(abyBuf, 2))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-       wFileLen = abyBuf[0] * 256 + abyBuf[1];\r
-\r
-       if(wFileLen == 0)\r
-       {\r
-               *data_len = 0;\r
-               return CSI_ERROR;\r
-       }\r
-               \r
-       if(offset >= wFileLen)\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       if(offset + *data_len > wFileLen)\r
-       {\r
-               *data_len = wFileLen - offset;\r
-       }\r
-\r
-       dwOff = 0;\r
-       dwTmpLen = *data_len;\r
-       while(dwTmpLen > 1024)\r
-       {\r
-        g_HSI2CBuf[0] = 0x00;\r
-        g_HSI2CBuf[1] = 0x07;\r
-        g_HSI2CBuf[2] = 0x00;\r
-        g_HSI2CBuf[3] = 0xB0;\r
-        g_HSI2CBuf[4] = (unsigned char)(offset / 256);\r
-        g_HSI2CBuf[5] = (unsigned char)(offset % 256);\r
-        g_HSI2CBuf[6] = 0x00;\r
-        g_HSI2CBuf[7] = 0x04;\r
-        g_HSI2CBuf[8] = 0x00;\r
-               if(gHSEncTransSign == 0x01)\r
-               {\r
-                       for(i=0; i<7; ++i)\r
-               {\r
-                   g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-               }\r
-               }\r
-\r
-               ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);\r
-               HS_IIC_Send_Cmd(g_HSI2CBuf, 11);\r
-               if(0 == HS_IIC_Recv_Resp((unsigned char *)buffer + dwOff, 1024))\r
-               {\r
-            offset += 1024;\r
-                       dwOff += 1024;\r
-                       dwTmpLen -= 1024;\r
-               }\r
-               else\r
-               {\r
-                       return CSI_ERROR;\r
-               }\r
-       }\r
-\r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x07;\r
-       g_HSI2CBuf[2] = 0x00;\r
-       g_HSI2CBuf[3] = 0xB0;\r
-       g_HSI2CBuf[4] = (unsigned char)(offset / 256);\r
-       g_HSI2CBuf[5] = (unsigned char)(offset % 256);\r
-       g_HSI2CBuf[6] = 0x00;\r
-       g_HSI2CBuf[7] = (unsigned char)(dwTmpLen / 256);\r
-       g_HSI2CBuf[8] = (unsigned char)(dwTmpLen % 256);\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<7; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-           }\r
-       }\r
-       ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, 11);\r
-       if(0 != HS_IIC_Recv_Resp((unsigned char *)buffer + dwOff, dwTmpLen))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       return CSI_OK;\r
-}\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö ¹Ø±ÕÖ¸¶¨µÄ×ʲú¾ä±ú\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö fd  - ´æ·Å×ʲú¾ä±ú\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_close_asset(void* fd)\r
-{\r
-       unsigned char abySW[2];\r
-       unsigned char i;\r
-\r
-       \r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x07;\r
-       g_HSI2CBuf[2] = 0x80;\r
-       g_HSI2CBuf[3] = 0xA6;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = 0x02;\r
-       g_HSI2CBuf[7] = (unsigned char)((unsigned int)fd / 256);\r
-       g_HSI2CBuf[8] = (unsigned int)fd % 256;\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<7; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-           }\r
-       }\r
-\r
-       ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, 11);\r
-       if(0 != HS_IIC_Recv_Resp(abySW, 0))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       return CSI_OK;\r
-}\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö È·ÈÏÖ¸¶¨µÄ×ʲúÊÇ·ñ¿É·ÃÎÊ\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö access-flag - ×ʲú·ÃÎʽá¹û±êʶ: ×ʲú´æÔÚÉèÖÃΪ1£¬×ʲú²»´æÔÚÉèÖÃΪ0\r
-    ¡ö asset_name - ×ʲúÃû×Ö\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_access_asset(uint32_t *access_flag, char asset_name[36])\r
-{\r
-       unsigned char i;\r
-       unsigned char abyBuf[10];\r
-       unsigned short j;\r
-\r
-       for(i=0; i<36; ++i)\r
-       {\r
-               if(asset_name[i] == 0)\r
-               {\r
-                       break;\r
-               }\r
-       }\r
-       if(i == 0)\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-       \r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = i+5;\r
-       g_HSI2CBuf[2] = 0x80;\r
-       g_HSI2CBuf[3] = 0xA4;\r
-       g_HSI2CBuf[4] = 0x04;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = i;\r
-       lmemcpy(g_HSI2CBuf+7, (unsigned char *)asset_name, i);\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(j=0; j<i+5; ++j)\r
-           {\r
-               g_HSI2CBuf[2+j] ^= g_TransTmpKey[j % 16];\r
-           }\r
-       }\r
-\r
-       ComputeCRC(g_HSI2CBuf, i+7, g_HSI2CBuf+i+7);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, i+9);\r
-       abyBuf[0] = 0x00;\r
-       abyBuf[1] = 0x00;\r
-       if(0 != HS_IIC_Recv_Resp(abyBuf, 0))\r
-       {\r
-               if((abyBuf[0] == 0x6A) && (abyBuf[1] == 0x82))\r
-               {\r
-                       *access_flag = 0;\r
-                       return CSI_OK;\r
-               }\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       *access_flag = 1;\r
-\r
-       return CSI_OK;\r
-}\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö Çå³ýÖ¸¶¨µÄ×ʲú\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö asset_name - ×ʲúÃû×Ö\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_remove_asset(char asset_name[36])\r
-{\r
-       unsigned char i;\r
-       unsigned char abySW[2];\r
-       unsigned short j;\r
-\r
-       for(i=0; i<36; ++i)\r
-       {\r
-               if(asset_name[i] == 0)\r
-               {\r
-                       break;\r
-               }\r
-       }\r
-       if(i == 0)\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-       \r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = i+5;\r
-       g_HSI2CBuf[2] = 0x00;\r
-       g_HSI2CBuf[3] = 0x0E;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = i;\r
-       lmemcpy(g_HSI2CBuf+7, (unsigned char *)asset_name, i);\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(j=0; j<i+5; ++j)\r
-           {\r
-               g_HSI2CBuf[2+j] ^= g_TransTmpKey[j % 16];\r
-           }\r
-       }\r
-\r
-       ComputeCRC(g_HSI2CBuf, i+7, g_HSI2CBuf+i+7);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, i+9);\r
-       if(0 != HS_IIC_Recv_Resp(abySW, 0))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       return CSI_OK;\r
-}\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö Çå³ýËùÓÐ×ʲú\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö ÎÞ\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_clear_assets(void)\r
-{\r
-       unsigned char abySW[2];\r
-       unsigned char i;\r
-\r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x05;\r
-       g_HSI2CBuf[2] = 0x80;\r
-       g_HSI2CBuf[3] = 0x0E;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = 0x00;\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<5; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-           }\r
-       }\r
-       ComputeCRC(g_HSI2CBuf, 7, g_HSI2CBuf+7);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, 9);\r
-       if(0 != HS_IIC_Recv_Resp(abySW, 0))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       return CSI_OK;\r
-}\r
-\r
-\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö »ñÈ¡°²È«Ð¾Æ¬¹Ì¼þ°æ±¾ºÅ\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö ver - ´æ·Å°æ±¾ºÅbuffer\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_get_fw_version(char ver[8])\r
-{\r
-    unsigned char i;\r
-\r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x05;\r
-       g_HSI2CBuf[2] = 0x00;\r
-       g_HSI2CBuf[3] = 0xBC;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = 0x08;\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<5; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-           }\r
-       }\r
-       ComputeCRC(g_HSI2CBuf, 7, g_HSI2CBuf+7);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, 9);\r
-       if(0 != HS_IIC_Recv_Resp((unsigned char *)ver, 8))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       return CSI_OK;\r
-\r
-}\r
-\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö ÏµÍ³½øÈëµÍ¹¦ºÄģʽ\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö ctx - ±£´æ½øÈëµÍ¹¦ºÄǰµÄÐèÒª±£´æµÄÉÏÏÂÎÄ\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö ÎÞ*/\r
-void csi_enter_lpm(void *ctx)\r
-{\r
-       unsigned char abySW[2];\r
-       unsigned char i;\r
-\r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x0C;\r
-       g_HSI2CBuf[2] = 0x80;\r
-       g_HSI2CBuf[3] = 0xFB;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = 0x07;\r
-\r
-       g_HSI2CBuf[7] = 0x53;\r
-       g_HSI2CBuf[8] = 0x54;\r
-       g_HSI2CBuf[9] = 0x41;\r
-       g_HSI2CBuf[10] = 0x4E;\r
-       g_HSI2CBuf[11] = 0x44;\r
-       g_HSI2CBuf[12] = 0x42;\r
-       g_HSI2CBuf[13] = 0x59;\r
-\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<12; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-           }\r
-       }\r
-\r
-       ComputeCRC(g_HSI2CBuf, 14, g_HSI2CBuf+14);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, 16);\r
-       if(0 != HS_IIC_Recv_Resp(abySW, 0))\r
-       {\r
-               return ;\r
-       }\r
-\r
-       Delay_Ms(30);\r
-\r
-       return ;\r
-}\r
-\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö ÏµÍ³Í˳öµÍ¹¦ºÄģʽ\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö ctx - ±£´æ½øÈëµÍ¹¦ºÄǰµÄÐèÒª±£´æµÄÉÏÏÂÎÄ\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö ÎÞ*/\r
-int csi_exit_lpm(void *ctx)\r
-{\r
-       unsigned char abyVer[8];\r
-       unsigned char i;\r
-       int ret = 0;\r
-\r
-       g_HSI2CBuf[0] = 0x00;\r
-       g_HSI2CBuf[1] = 0x05;\r
-       g_HSI2CBuf[2] = 0x00;\r
-       g_HSI2CBuf[3] = 0xBC;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = 0x00;\r
-       g_HSI2CBuf[6] = 0x08;\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<5; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];\r
-           }\r
-       }\r
-       ComputeCRC(g_HSI2CBuf, 7, g_HSI2CBuf+7);\r
-\r
-       for(i=0; i<3; ++i)\r
-       {\r
-               Set_GPIO_State(0);\r
-\r
-               Delay_Ms(1);\r
-\r
-               Set_GPIO_State(1);\r
-\r
-               Delay_Ms(15);\r
-\r
-               ret = HS_IIC_Send_Cmd(g_HSI2CBuf, 9);\r
-               if(0 == HS_IIC_Recv_Resp(abyVer, 8))\r
-               {\r
-                       if((abyVer[0] == 'V') && (abyVer[2] == '.'))\r
-                       {\r
-                               return ret;\r
-                       }\r
-               }\r
-       }\r
-                       \r
-       return ret;\r
-}\r
-\r
-\r
-/*¡ð ¹¦ÄÜÃèÊö\r
-    ¡ö ·¢ËÍÇëÇó¸øSEÇÒͬ²½´¦ÀíÓû§ÃüÁî\r
-  ¡ð ½Ó¿Ú²ÎÊý\r
-    ¡ö req - ÃüÁîÇëÇóÊý¾Ý°ü\r
-    ¡ö req_len - ÃüÁîÇëÇóÊý¾Ý°ü³¤¶È\r
-    ¡ö rsp - ÃüÁîÏìÓ¦Êý¾Ý°ü\r
-    ¡ö rsp_len - ÃüÁîÏìÓ¦Êý¾Ý°ü³¤¶È\r
-  ¡ð ·µ»ØÖµ\r
-    ¡ö 0±íʾ³É¹¦£¬·Ç0±íʾʧ°Ü*/\r
-csi_error_t csi_user_cmd_process_sync(void *req, unsigned int req_len, void *rsp, unsigned int *rsp_len)\r
-{\r
-    unsigned short i;\r
-       unsigned short wRspLen;\r
-       unsigned char crc[2];\r
-       unsigned int dwCnt;\r
-\r
-       if(req_len > 1024)\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       g_HSI2CBuf[0] = (unsigned char)((req_len+5) / 256);\r
-       g_HSI2CBuf[1] = (unsigned char)((req_len+5) % 256);\r
-       g_HSI2CBuf[2] = 0x80;\r
-       g_HSI2CBuf[3] = 0xC2;\r
-       g_HSI2CBuf[4] = 0x00;\r
-       g_HSI2CBuf[5] = (unsigned char)(req_len / 256);\r
-       g_HSI2CBuf[6] = (unsigned char)(req_len % 256);\r
-       lmemcpy(g_HSI2CBuf+7, (unsigned char *)req, req_len);\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-           for(i=0; i<req_len+5; ++i)\r
-           {\r
-               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];\r
-           }\r
-       }\r
-\r
-       ComputeCRC(g_HSI2CBuf, req_len+7, g_HSI2CBuf+req_len+7);\r
-       HS_IIC_Send_Cmd(g_HSI2CBuf, req_len+9);\r
-\r
-\r
-       g_HSI2CBuf[0] = 0x00;\r
-       dwCnt = 0;\r
-       while(g_HSI2CBuf[0] != 0x55)\r
-       {\r
-               ++dwCnt;\r
-               if(dwCnt > 0x1000)\r
-               {\r
-                       return CSI_ERROR;\r
-               }\r
-               IIC_Master_Receive(0xC9, g_HSI2CBuf, 1);\r
-       }\r
-\r
-       IIC_Master_Receive(0xC9, g_HSI2CBuf, 256);\r
-       wRspLen = g_HSI2CBuf[0];\r
-       wRspLen <<= 8;\r
-       wRspLen |= g_HSI2CBuf[1];\r
-       \r
-       ComputeCRC(g_HSI2CBuf+2, wRspLen, crc);\r
-       if((g_HSI2CBuf[wRspLen+2] != crc[0]) || (g_HSI2CBuf[wRspLen+3] != crc[1]))\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       if(gHSEncTransSign == 0x01)\r
-       {\r
-               for(i=0; i<wRspLen; ++i)\r
-               {\r
-                       g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];\r
-               }\r
-       }\r
-       if((g_HSI2CBuf[wRspLen] != 0x90) || (g_HSI2CBuf[1+wRspLen] != 0x00))//״̬×Ö\r
-       {\r
-               return CSI_ERROR;\r
-       }\r
-\r
-       *rsp_len = wRspLen-2;\r
-       lmemcpy(rsp, g_HSI2CBuf+2, wRspLen-2);\r
-       \r
-       return CSI_OK;\r
-}\r
-\r
+
+#include "hs_private.h"
+#include "iotsec.h"
+
+//--------------------------------------------------------------------------
+//
+//                                                                     版本V2.0.00
+//
+//--------------------------------------------------------------------------
+
+
+
+
+
+/*○ 功能描述
+    ■ 获取读取资产的文件句柄
+  ○ 接口参数
+    ■ fd  - 存放资产句柄
+    ■ asset_name - 资产名字
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_open_asset(void **fd, char asset_name[36])
+{
+       unsigned char tmpBuf[10];
+       unsigned char i;
+       unsigned short j;
+
+       for(i=0; i<36; ++i)
+       {
+               if(asset_name[i] == 0)
+               {
+                       break;
+               }
+       }
+
+       if((fd == 0) || (i == 0))
+       {
+               return CSI_ERROR;
+       }
+       
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = i+5;
+       g_HSI2CBuf[2] = 0x80;
+       g_HSI2CBuf[3] = 0xE0;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = i;
+       lmemcpy(g_HSI2CBuf+7, (unsigned char *)asset_name, i);
+       if(gHSEncTransSign == 0x01)
+       {
+           for(j=0; j<i+5; ++j)
+           {
+               g_HSI2CBuf[2+j] ^= g_TransTmpKey[j % 16];
+           }
+       }
+       ComputeCRC(g_HSI2CBuf, i+7, g_HSI2CBuf+i+7);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, i+9);
+       if(0 != HS_IIC_Recv_Resp(tmpBuf, 2))
+       {
+               return CSI_ERROR;
+       }
+
+       *fd = (void*)(tmpBuf[0] * 256 + tmpBuf[1]);     //文件地址
+       return CSI_OK;
+}
+
+/*○ 功能描述
+    ■ 写入指定的资产
+  ○ 接口参数
+    ■ fd  - 存放资产句柄
+    ■ offset - 资产数据偏移
+    ■ buffer - 存放资产数据缓冲区
+    ■ data_len - 写入资产数据个数
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_write_asset(void* fd,uint32_t offset,void *data,uint32_t data_len)
+{
+    unsigned int dwBufOff;
+       unsigned char abyBuf[10];
+       unsigned short i;
+
+       if(offset+data_len > 4096)
+       {
+               return CSI_ERROR;
+       }
+       if(data == 0)
+       {
+               return CSI_ERROR;
+       }
+       
+       //先根据fd选择文件
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x07;
+       g_HSI2CBuf[2] = 0x00;
+       g_HSI2CBuf[3] = 0xA4;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = 0x02;
+       g_HSI2CBuf[7] = (unsigned char)((unsigned int)fd / 256);
+       g_HSI2CBuf[8] = (unsigned int)fd % 256;
+
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<7; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+           }
+       }
+
+       ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, 11);
+       if(0 != HS_IIC_Recv_Resp(abyBuf, 2))
+       {
+               return CSI_ERROR;
+       }
+
+       if(data_len == 0)
+       {
+               return CSI_OK;
+       }
+
+    dwBufOff = 0;
+       while(data_len > 1024)
+       {
+               g_HSI2CBuf[0] = 0x04;
+               g_HSI2CBuf[1] = 0x07;
+               g_HSI2CBuf[2] = 0x00;
+               g_HSI2CBuf[3] = 0xd6;
+               g_HSI2CBuf[4] = (unsigned char)(offset / 256);
+               g_HSI2CBuf[5] = (unsigned char)(offset % 256);
+               g_HSI2CBuf[6] = 0x00;
+               g_HSI2CBuf[7] = 0x04;
+               g_HSI2CBuf[8] = 0x00;
+               lmemcpy(g_HSI2CBuf+9, (unsigned char *)data + dwBufOff, 1024);
+               
+               if(gHSEncTransSign == 0x01)
+               {
+                       for(i=0; i<1031; ++i)
+               {
+                   g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];
+               }
+               }
+
+               ComputeCRC(g_HSI2CBuf, 1033, g_HSI2CBuf+1033);
+               HS_IIC_Send_Cmd(g_HSI2CBuf, 1035);
+               if(0 != HS_IIC_Recv_Resp(abyBuf, 0))
+               {
+                       return CSI_ERROR;
+               }
+               offset += 1024;
+               data_len -= 1024;
+               dwBufOff += 1024;
+       }
+
+       g_HSI2CBuf[0] = (unsigned char)((data_len+7) / 256);
+       g_HSI2CBuf[1] = (unsigned char)((data_len+7) % 256);
+       g_HSI2CBuf[2] = 0x80;
+       g_HSI2CBuf[3] = 0xd6;
+       g_HSI2CBuf[4] = (unsigned char)(offset / 256);
+       g_HSI2CBuf[5] = (unsigned char)(offset % 256);
+       g_HSI2CBuf[6] = 0x00;
+       g_HSI2CBuf[7] = (unsigned char)(data_len / 256);
+       g_HSI2CBuf[8] = (unsigned char)(data_len % 256);
+       lmemcpy(g_HSI2CBuf+9, (unsigned char *)data + dwBufOff, data_len);
+
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<data_len+7; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];
+           }
+       }
+
+       ComputeCRC(g_HSI2CBuf, data_len+9, g_HSI2CBuf+data_len+9);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, data_len+11);
+       if(0 != HS_IIC_Recv_Resp(abyBuf, 0))
+       {
+               return CSI_ERROR;
+       }
+       
+       return CSI_OK;
+}
+
+/*○ 功能描述
+    ■ 读取指定的资产
+  ○ 接口参数
+    ■ fd  - 存放资产句柄
+    ■ offset - 资产数据偏移
+    ■ buffer - 存放资产数据缓冲区
+    ■ data_len - 返回读取资产数据个数
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_read_asset(void* fd,uint32_t offset,void *buffer,uint32_t* data_len)
+{
+       unsigned int dwOff;
+       unsigned char abyBuf[10];
+       unsigned short wFileLen;
+       uint32_t dwTmpLen;
+       unsigned short i;
+
+       
+       if(*data_len == 0)
+       {
+               return CSI_ERROR;
+       }
+
+       if(buffer == 0)
+       {
+               return CSI_ERROR;
+       }
+       
+
+       //先根据fd选择文件
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x07;
+       g_HSI2CBuf[2] = 0x00;
+       g_HSI2CBuf[3] = 0xA4;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = 0x02;
+       g_HSI2CBuf[7] = (unsigned char)((unsigned int)fd / 256);
+       g_HSI2CBuf[8] = (unsigned int)fd % 256;
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<7; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+           }
+       }
+
+       ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, 11);
+       if(0 != HS_IIC_Recv_Resp(abyBuf, 2))
+       {
+               return CSI_ERROR;
+       }
+       wFileLen = abyBuf[0] * 256 + abyBuf[1];
+
+       if(wFileLen == 0)
+       {
+               *data_len = 0;
+               return CSI_ERROR;
+       }
+               
+       if(offset >= wFileLen)
+       {
+               return CSI_ERROR;
+       }
+
+       if(offset + *data_len > wFileLen)
+       {
+               *data_len = wFileLen - offset;
+       }
+
+       dwOff = 0;
+       dwTmpLen = *data_len;
+       while(dwTmpLen > 1024)
+       {
+        g_HSI2CBuf[0] = 0x00;
+        g_HSI2CBuf[1] = 0x07;
+        g_HSI2CBuf[2] = 0x00;
+        g_HSI2CBuf[3] = 0xB0;
+        g_HSI2CBuf[4] = (unsigned char)(offset / 256);
+        g_HSI2CBuf[5] = (unsigned char)(offset % 256);
+        g_HSI2CBuf[6] = 0x00;
+        g_HSI2CBuf[7] = 0x04;
+        g_HSI2CBuf[8] = 0x00;
+               if(gHSEncTransSign == 0x01)
+               {
+                       for(i=0; i<7; ++i)
+               {
+                   g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+               }
+               }
+
+               ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);
+               HS_IIC_Send_Cmd(g_HSI2CBuf, 11);
+               if(0 == HS_IIC_Recv_Resp((unsigned char *)buffer + dwOff, 1024))
+               {
+            offset += 1024;
+                       dwOff += 1024;
+                       dwTmpLen -= 1024;
+               }
+               else
+               {
+                       return CSI_ERROR;
+               }
+       }
+
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x07;
+       g_HSI2CBuf[2] = 0x00;
+       g_HSI2CBuf[3] = 0xB0;
+       g_HSI2CBuf[4] = (unsigned char)(offset / 256);
+       g_HSI2CBuf[5] = (unsigned char)(offset % 256);
+       g_HSI2CBuf[6] = 0x00;
+       g_HSI2CBuf[7] = (unsigned char)(dwTmpLen / 256);
+       g_HSI2CBuf[8] = (unsigned char)(dwTmpLen % 256);
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<7; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+           }
+       }
+       ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, 11);
+       if(0 != HS_IIC_Recv_Resp((unsigned char *)buffer + dwOff, dwTmpLen))
+       {
+               return CSI_ERROR;
+       }
+
+       return CSI_OK;
+}
+
+/*○ 功能描述
+    ■ 关闭指定的资产句柄
+  ○ 接口参数
+    ■ fd  - 存放资产句柄
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_close_asset(void* fd)
+{
+       unsigned char abySW[2];
+       unsigned char i;
+
+       
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x07;
+       g_HSI2CBuf[2] = 0x80;
+       g_HSI2CBuf[3] = 0xA6;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = 0x02;
+       g_HSI2CBuf[7] = (unsigned char)((unsigned int)fd / 256);
+       g_HSI2CBuf[8] = (unsigned int)fd % 256;
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<7; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+           }
+       }
+
+       ComputeCRC(g_HSI2CBuf, 9, g_HSI2CBuf+9);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, 11);
+       if(0 != HS_IIC_Recv_Resp(abySW, 0))
+       {
+               return CSI_ERROR;
+       }
+
+       return CSI_OK;
+}
+
+/*○ 功能描述
+    ■ 确认指定的资产是否可访问
+  ○ 接口参数
+    ■ access-flag - 资产访问结果标识: 资产存在设置为1,资产不存在设置为0
+    ■ asset_name - 资产名字
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_access_asset(uint32_t *access_flag, char asset_name[36])
+{
+       unsigned char i;
+       unsigned char abyBuf[10];
+       unsigned short j;
+
+       for(i=0; i<36; ++i)
+       {
+               if(asset_name[i] == 0)
+               {
+                       break;
+               }
+       }
+       if(i == 0)
+       {
+               return CSI_ERROR;
+       }
+       
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = i+5;
+       g_HSI2CBuf[2] = 0x80;
+       g_HSI2CBuf[3] = 0xA4;
+       g_HSI2CBuf[4] = 0x04;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = i;
+       lmemcpy(g_HSI2CBuf+7, (unsigned char *)asset_name, i);
+       if(gHSEncTransSign == 0x01)
+       {
+           for(j=0; j<i+5; ++j)
+           {
+               g_HSI2CBuf[2+j] ^= g_TransTmpKey[j % 16];
+           }
+       }
+
+       ComputeCRC(g_HSI2CBuf, i+7, g_HSI2CBuf+i+7);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, i+9);
+       abyBuf[0] = 0x00;
+       abyBuf[1] = 0x00;
+       if(0 != HS_IIC_Recv_Resp(abyBuf, 0))
+       {
+               if((abyBuf[0] == 0x6A) && (abyBuf[1] == 0x82))
+               {
+                       *access_flag = 0;
+                       return CSI_OK;
+               }
+               return CSI_ERROR;
+       }
+
+       *access_flag = 1;
+
+       return CSI_OK;
+}
+
+/*○ 功能描述
+    ■ 清除指定的资产
+  ○ 接口参数
+    ■ asset_name - 资产名字
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_remove_asset(char asset_name[36])
+{
+       unsigned char i;
+       unsigned char abySW[2];
+       unsigned short j;
+
+       for(i=0; i<36; ++i)
+       {
+               if(asset_name[i] == 0)
+               {
+                       break;
+               }
+       }
+       if(i == 0)
+       {
+               return CSI_ERROR;
+       }
+       
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = i+5;
+       g_HSI2CBuf[2] = 0x00;
+       g_HSI2CBuf[3] = 0x0E;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = i;
+       lmemcpy(g_HSI2CBuf+7, (unsigned char *)asset_name, i);
+       if(gHSEncTransSign == 0x01)
+       {
+           for(j=0; j<i+5; ++j)
+           {
+               g_HSI2CBuf[2+j] ^= g_TransTmpKey[j % 16];
+           }
+       }
+
+       ComputeCRC(g_HSI2CBuf, i+7, g_HSI2CBuf+i+7);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, i+9);
+       if(0 != HS_IIC_Recv_Resp(abySW, 0))
+       {
+               return CSI_ERROR;
+       }
+
+       return CSI_OK;
+}
+
+/*○ 功能描述
+    ■ 清除所有资产
+  ○ 接口参数
+    ■ 无
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_clear_assets(void)
+{
+       unsigned char abySW[2];
+       unsigned char i;
+
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x05;
+       g_HSI2CBuf[2] = 0x80;
+       g_HSI2CBuf[3] = 0x0E;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = 0x00;
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<5; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+           }
+       }
+       ComputeCRC(g_HSI2CBuf, 7, g_HSI2CBuf+7);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, 9);
+       if(0 != HS_IIC_Recv_Resp(abySW, 0))
+       {
+               return CSI_ERROR;
+       }
+
+       return CSI_OK;
+}
+
+
+
+/*○ 功能描述
+    ■ 获取安全芯片固件版本号
+  ○ 接口参数
+    ■ ver - 存放版本号buffer
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_get_fw_version(char ver[8])
+{
+    unsigned char i;
+
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x05;
+       g_HSI2CBuf[2] = 0x00;
+       g_HSI2CBuf[3] = 0xBC;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = 0x08;
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<5; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+           }
+       }
+       ComputeCRC(g_HSI2CBuf, 7, g_HSI2CBuf+7);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, 9);
+       if(0 != HS_IIC_Recv_Resp((unsigned char *)ver, 8))
+       {
+               return CSI_ERROR;
+       }
+
+       return CSI_OK;
+
+}
+
+
+/*○ 功能描述
+    ■ 系统进入低功耗模式
+  ○ 接口参数
+    ■ ctx - 保存进入低功耗前的需要保存的上下文
+  ○ 返回值
+    ■ 无*/
+void csi_enter_lpm(void *ctx)
+{
+       unsigned char abySW[2];
+       unsigned char i;
+
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x0C;
+       g_HSI2CBuf[2] = 0x80;
+       g_HSI2CBuf[3] = 0xFB;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = 0x07;
+
+       g_HSI2CBuf[7] = 0x53;
+       g_HSI2CBuf[8] = 0x54;
+       g_HSI2CBuf[9] = 0x41;
+       g_HSI2CBuf[10] = 0x4E;
+       g_HSI2CBuf[11] = 0x44;
+       g_HSI2CBuf[12] = 0x42;
+       g_HSI2CBuf[13] = 0x59;
+
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<12; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+           }
+       }
+
+       ComputeCRC(g_HSI2CBuf, 14, g_HSI2CBuf+14);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, 16);
+       if(0 != HS_IIC_Recv_Resp(abySW, 0))
+       {
+               return ;
+       }
+
+       Delay_Ms(30);
+
+       return ;
+}
+
+
+/*○ 功能描述
+    ■ 系统退出低功耗模式
+  ○ 接口参数
+    ■ ctx - 保存进入低功耗前的需要保存的上下文
+  ○ 返回值
+    ■ 无*/
+int csi_exit_lpm(void *ctx)
+{
+       unsigned char abyVer[8];
+       unsigned char i;
+       int ret = 0;
+
+       g_HSI2CBuf[0] = 0x00;
+       g_HSI2CBuf[1] = 0x05;
+       g_HSI2CBuf[2] = 0x00;
+       g_HSI2CBuf[3] = 0xBC;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = 0x00;
+       g_HSI2CBuf[6] = 0x08;
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<5; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i];
+           }
+       }
+       ComputeCRC(g_HSI2CBuf, 7, g_HSI2CBuf+7);
+
+       for(i=0; i<3; ++i)
+       {
+               Set_GPIO_State(0);
+
+               Delay_Ms(1);
+
+               Set_GPIO_State(1);
+
+               Delay_Ms(15);
+
+               ret = HS_IIC_Send_Cmd(g_HSI2CBuf, 9);
+               if(0 == HS_IIC_Recv_Resp(abyVer, 8))
+               {
+                       if((abyVer[0] == 'V') && (abyVer[2] == '.'))
+                       {
+                               return ret;
+                       }
+               }
+       }
+                       
+       return ret;
+}
+
+
+/*○ 功能描述
+    ■ 发送请求给SE且同步处理用户命令
+  ○ 接口参数
+    ■ req - 命令请求数据包
+    ■ req_len - 命令请求数据包长度
+    ■ rsp - 命令响应数据包
+    ■ rsp_len - 命令响应数据包长度
+  ○ 返回值
+    ■ 0表示成功,非0表示失败*/
+csi_error_t csi_user_cmd_process_sync(void *req, unsigned int req_len, void *rsp, unsigned int *rsp_len)
+{
+    unsigned short i;
+       unsigned short wRspLen;
+       unsigned char crc[2];
+       unsigned int dwCnt;
+
+       if(req_len > 1024)
+       {
+               return CSI_ERROR;
+       }
+
+       g_HSI2CBuf[0] = (unsigned char)((req_len+5) / 256);
+       g_HSI2CBuf[1] = (unsigned char)((req_len+5) % 256);
+       g_HSI2CBuf[2] = 0x80;
+       g_HSI2CBuf[3] = 0xC2;
+       g_HSI2CBuf[4] = 0x00;
+       g_HSI2CBuf[5] = (unsigned char)(req_len / 256);
+       g_HSI2CBuf[6] = (unsigned char)(req_len % 256);
+       lmemcpy(g_HSI2CBuf+7, (unsigned char *)req, req_len);
+       if(gHSEncTransSign == 0x01)
+       {
+           for(i=0; i<req_len+5; ++i)
+           {
+               g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];
+           }
+       }
+
+       ComputeCRC(g_HSI2CBuf, req_len+7, g_HSI2CBuf+req_len+7);
+       HS_IIC_Send_Cmd(g_HSI2CBuf, req_len+9);
+
+
+       g_HSI2CBuf[0] = 0x00;
+       dwCnt = 0;
+       while(g_HSI2CBuf[0] != 0x55)
+       {
+               ++dwCnt;
+               if(dwCnt > 0x1000)
+               {
+                       return CSI_ERROR;
+               }
+               IIC_Master_Receive(0xC9, g_HSI2CBuf, 1);
+       }
+
+       IIC_Master_Receive(0xC9, g_HSI2CBuf, 256);
+       wRspLen = g_HSI2CBuf[0];
+       wRspLen <<= 8;
+       wRspLen |= g_HSI2CBuf[1];
+       
+       ComputeCRC(g_HSI2CBuf+2, wRspLen, crc);
+       if((g_HSI2CBuf[wRspLen+2] != crc[0]) || (g_HSI2CBuf[wRspLen+3] != crc[1]))
+       {
+               return CSI_ERROR;
+       }
+
+       if(gHSEncTransSign == 0x01)
+       {
+               for(i=0; i<wRspLen; ++i)
+               {
+                       g_HSI2CBuf[2+i] ^= g_TransTmpKey[i % 16];
+               }
+       }
+       if((g_HSI2CBuf[wRspLen] != 0x90) || (g_HSI2CBuf[1+wRspLen] != 0x00))//状态字
+       {
+               return CSI_ERROR;
+       }
+
+       *rsp_len = wRspLen-2;
+       lmemcpy(rsp, g_HSI2CBuf+2, wRspLen-2);
+       
+       return CSI_OK;
+}
+