TARGET_PACK_NAME=pack_brandy_native_js_z1
APPLICATION_NAME=brandy-native-js-z1
fi
+if [ "$1" == "lt22" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_lt22
+APPLICATION_NAME=brandy-native-js-lt22
+fi
+
}
CURRENT_BRANCH=`git branch |awk '$1=="*"{print $2}'`
COMMIT_ID=`git rev-parse HEAD`
#include "custom_utils.h"\r
#endif\r
\r
+#ifdef SUPPORT_A5133_SERVICE\r
+#include "service/a5133_service.h"\r
+#endif\r
+\r
#define EMMC_BASE_ADDR 0x52062000\r
#define TASK_PRIORITY_APP (osPriority_t)(17)\r
#define TICK_TEN_MS (10U)\r
uapi_alipay_svr_init();\r
#endif\r
\r
+#ifdef SUPPORT_A5133_SERVICE\r
+ uapi_a5133_service_init();\r
+#endif\r
+\r
startup_post_init();\r
\r
set_startup_finish_flag();\r
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalControlView.cpp
#${CMAKE_CURRENT_SOURCE_DIR} /service/acc_service.c
)
+
+
+if("SUPPORT_A5133_SERVICE" IN_LIST DEFINES)
+set(SOURCES
+ ${SOURCES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/producttest/src/testA5133.cpp
+)
+endif()
if("SUPPORT_ALIPAY_SEC" IN_LIST DEFINES)
set(SOURCES
${SOURCES}
--- /dev/null
+#ifndef TEST_A5133_VIEW_H
+#define TEST_A5133_VIEW_H
+
+#include "BaseView.h"
+#include "View.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_button.h"
+#include "components/ui_image_view.h"
+#include "components/ui_label_button_ext.h"
+
+//#include "cmsis_os.h"
+#include <iostream>
+namespace OHOS
+{
+
+ class testA5133View
+ {
+
+ public:
+ struct ButtonConfig_ext_t
+ {
+ int x;
+ int y;
+ int w;
+ int h;
+ const char *str;
+ const char *ViewId;
+ const char *ImageSrc;
+
+ //label
+ int label_x;
+ int label_y;
+ uint8_t ALIGN;
+ int Fontsize;
+
+ };
+
+ struct LabelConfig
+ {
+ int16_t left;
+ int16_t top;
+ int16_t width;
+ int16_t height;
+ int16_t fontSize; // 字体大小
+ int16_t lineHeigh; // 行高
+ char *text; // 文本
+ uint8_t lineBreakMode; // 断行模式。
+ };
+
+
+ testA5133View();
+ virtual ~testA5133View();
+ static testA5133View *GetInstance(void);
+ void dial_112(bool);
+ void BT_discovery_callback(void);
+
+ UIScrollView *testA5133InitIView(void);
+ void ClearAll(void);
+ void set_BR_connect(char *);
+ bool br_scan_set_text(unsigned char *name ,unsigned char *addr,int16_t rssi,int i);
+ UILabelButtonExt* button{NULL};
+
+ private:
+ UILabelButtonExt *SetTheButton_ext(ButtonConfig_ext_t &buttonconfig);//, UIView::OnTouchListener *clickListener);
+ UILabel *InitLabel(LabelConfig &labelConfig);
+ bool testA5133ScrollViewcrollViewinit(void);
+ UIScrollView *testa5133ScrollView{nullptr};
+
+
+ UILabelButtonExt* labelButton_next = nullptr;
+ UILabel *label_a5133_SCAN[5]{nullptr};
+
+ bool initViewStatus{false};
+ UILabel *Title{nullptr}; // 标题
+
+ };
+}
+#endif
\ No newline at end of file
\r
shutdown,\r
FACTORYRESE,\r
+#ifdef SUPPORT_A5133_SERVICE\r
+ RF5133,\r
+#endif\r
TEST_1,\r
\r
MAX_TESTVIEWID,\r
#include "producttest/include/testold.h"\r
#include "producttest/include/testbt.h"\r
#include "producttest/include/testSEChipTest.h"\r
-\r
+#ifdef SUPPORT_A5133_SERVICE\r
+#include "producttest/include/testA5133.h"\r
+#endif\r
namespace OHOS\r
{\r
\r
bool ChangeoldTESTView(int16_t thisView);\r
bool ChangeBTTESTView(int16_t thisView);\r
bool ChangeSEChipTESTView(int16_t thisView);\r
-\r
+ #ifdef SUPPORT_A5133_SERVICE\r
+ bool ChangeA5133TESTView(int16_t thisView);\r
+ #endif\r
bool ClickFunc(int16_t interface);\r
void ChangeView(int16_t hideView, int16_t showView);\r
UIScrollView *GetSystemScrollView(int ViewId);\r
UILabelButtonExt *SetTheButton_ext(ButtonConfig_ext_t &ButtonConfig_ext, UIView::OnClickListener *clickListener);\r
\r
testAboutView *test_about_view;\r
- UIScrollView *SystemScrollView[20]{nullptr};\r
+ UIScrollView *SystemScrollView[30]{nullptr};\r
UILabel *SystemLabel{nullptr}; // 标题\r
UILabelButtonExt *SystemUpgradeButtonExt{nullptr};\r
\r
testBTView *test_BT_view{nullptr};\r
\r
testSEChipView *test_SEChip_view{nullptr};\r
-\r
+ #ifdef SUPPORT_A5133_SERVICE\r
+ testA5133View *test_A5133_view{nullptr};\r
+ #endif\r
UILabelButtonExt *button[20]={NULL};\r
bool initViewStatus{false};\r
};\r
--- /dev/null
+#include "wearable_log.h"
+#include "custom_utils.h"
+#include "producttest/include/testPresenter.h"
+#include "producttest/include/testA5133.h"
+#include "AlarmClockModel.h"
+#include "cmsis_os2.h"
+#include "cat1_server.h"
+#include "cat1_ctl.h"
+#include "cat1_server_hal.h"
+#include "custom_runtime.h"
+#include "bts_br_gap.h"
+#include "bts_le_gap.h"
+#include "bleService.h"
+#include "BluetoothModel.h"
+#ifdef __cplusplus
+#if __cplusplus
+extern "C"
+{
+#endif
+#endif
+ #include "pm_veto.h"
+ #include "pm.h"
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif
+#endif
+
+namespace OHOS
+{
+ // #define BLE_scan
+ static testA5133View *g_ptestA5133View{nullptr};
+
+ testA5133View::testA5133View()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchView::SystemAboutTheWatchView");
+ g_ptestA5133View = this;
+ }
+
+ testA5133View::~testA5133View()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testA5133View::~testA5133View");
+ ClearAll();
+ //g_ptestA5133View = nullptr;
+ }
+
+ testA5133View *testA5133View::GetInstance()
+ {
+ return g_ptestA5133View;
+ }
+ static osTimerId_t BR_TEST_timer=NULL;
+ void testA5133View::ClearAll()
+ {
+ if(testa5133ScrollView)
+ {
+ BluetoothModel::GetInstance()->SetCaseListClear();
+
+ testa5133ScrollView->RemoveAll();
+
+ if (BR_TEST_timer != NULL) {
+ osTimerStop(BR_TEST_timer);
+ osTimerDelete(BR_TEST_timer);
+ BR_TEST_timer = NULL;
+ return ;
+ }
+ if(button)
+ {
+ delete button;
+ button=nullptr;
+ }
+
+ if(labelButton_next)
+ {
+ delete labelButton_next;
+ labelButton_next=nullptr;
+ }
+
+
+ if(Title)
+ {
+ delete Title;
+ Title=nullptr;
+ }
+
+ for(int i=0;i<5;i++)
+ {
+ if(label_a5133_SCAN[i])
+ {
+ delete label_a5133_SCAN[i];
+ label_a5133_SCAN[i]=nullptr;
+ }
+ }
+
+
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_P_TEST);
+ if (cnt == 1) {
+ uapi_pm_remove_sleep_veto(PM_ID_P_TEST);
+ } else {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"CAT1 SERVICE MCU has got pm_id_cat1 vote\r\n");
+ }
+
+
+ delete testa5133ScrollView;
+ testa5133ScrollView=nullptr;
+ }
+ }
+
+
+
+ UILabelButtonExt *testA5133View::SetTheButton_ext(ButtonConfig_ext_t &buttonconfig)
+ {
+ UILabelButtonExt *button = new UILabelButtonExt();
+ if (button == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SystemView::SetTheButton: button new fail!");
+ return nullptr;
+ }
+ button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);
+ button->SetViewId(buttonconfig.ViewId);
+ button->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full);
+ //button->SetStyle(STYLE_BORDER_RADIUS,0);
+ button->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
+ //button->SetStyleForState(STYLE_BORDER_RADIUS,0, UIButton::PRESSED);
+ button->SetTouchable(true);
+ button->SetStyle(STYLE_BACKGROUND_OPA, 0x80);
+ button->SetText(buttonconfig.str);
+ button->SetAlign(TEXT_ALIGNMENT_LEFT);
+ button->SetLabelPosition(buttonconfig.label_x,buttonconfig.label_y );
+ button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, buttonconfig.Fontsize);
+ UIView:: OnClickListener *touchListener = static_cast<UIView::OnClickListener *>(testPresenter::GetInstance());
+ button->SetOnClickListener(touchListener);
+
+ // UIView::OnDragListener *drgListener = static_cast<UIView::OnDragListener *>(testPresenter::GetInstance());
+ // button->SetOnDragListener(drgListener);
+
+ // button->SetDraggable(false);
+ return button;
+ }
+ static bool speakfalg=false;
+
+ static bool discovery_falg=false;
+
+ void testA5133View:: BT_discovery_callback( void)
+ {
+
+ bool reT_gap;
+ if(discovery_falg==false)
+ {
+
+
+ button->SetText("scaning");
+ button->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full);
+ discovery_falg=true;
+ }
+ else
+ {
+
+ button->SetText("discovery");
+ button->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full);
+
+ discovery_falg=false;
+ }
+ }
+
+
+ UILabel *testA5133View::InitLabel(LabelConfig &labelConfig)
+ {
+ UILabel *label = new UILabel();
+ if (label == nullptr)
+ {
+ return nullptr;
+ }
+ label->SetPosition(labelConfig.left, labelConfig.top, labelConfig.width, labelConfig.height); // 位置大小
+ label->SetStyle(STYLE_TEXT_FONT, labelConfig.fontSize); // 字体大小
+ label->SetStyle(STYLE_LINE_HEIGHT, labelConfig.lineHeigh); // 字体行高
+ label->SetText(labelConfig.text); // 内容
+ label->SetLineBreakMode(labelConfig.lineBreakMode); // 断行模式。
+ label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_TOP);
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelConfig.fontSize);
+ label->SetAlign(TEXT_ALIGNMENT_LEFT);
+ return label;
+ }
+
+
+ static bd_addr_t bd_addr;
+ static unsigned char addr[6] = {0};
+ static uint8_t number =0;
+ static uint8_t scan_i=0;
+
+ static void sample_gap_discovery_result_callback(const bd_addr_t *bd_addr)
+ {
+ unsigned char length = BD_NAME_LEN;
+ unsigned char *device_name = (unsigned char *)(void *)malloc(length);
+ if (device_name == NULL) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"gap_discovery_result_callback malloc error!\n");
+ return;
+ }
+ (void)memset_s(device_name, length, 0, length);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RemovePair gap_get_paired_devices_list ret = %s %s", device_name,bd_addr);
+ number++;
+
+ free(device_name);
+ }
+
+
+ static void mgdataTimerCallBack(int data)
+ {
+
+
+
+ }
+
+ bool testA5133View::br_scan_set_text(unsigned char *name ,unsigned char *addr,int16_t rssi,int i)
+ {
+ if(i>=5)
+ {
+ return false;
+ }
+ char buf[128]={0};
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "rssi %d",rssi);
+
+ sprintf_s(buf,128,"addr:%02X %02X %02X %02X %02X %02X\nRssi:%d",addr[0],addr[1],addr[2],addr[3],addr[4],addr[5],rssi);
+ label_a5133_SCAN[i]->SetText(buf);
+ RootView::GetInstance()->Invalidate();
+
+ return true;
+ }
+
+
+ bool testA5133View::testA5133ScrollViewcrollViewinit(void)
+ {
+
+ testa5133ScrollView = new UIScrollView();
+ if (testa5133ScrollView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchView::testa5133ScrollView new fail!");
+ return false;
+ }
+ testa5133ScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ testa5133ScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ testa5133ScrollView->SetStyle(STYLE_BORDER_RADIUS, 0);
+ testa5133ScrollView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ testa5133ScrollView->SetStyle(STYLE_BORDER_COLOR, Color::Yellow().blue);
+ testa5133ScrollView->SetScrollBlankSize(50);
+ testa5133ScrollView->SetReboundSize(50);
+ testa5133ScrollView->SetDirection(1);
+
+
+ LabelConfig Config = {
+ .left = 33,
+ .top = 80,
+ .width = 400,
+ .height = 44,
+ .fontSize = 30,
+ .lineHeigh = 0,
+ .text = "",
+ .lineBreakMode = UILabel::LINE_BREAK_WRAP,
+ };
+
+
+ for(int i=0 ;i<5;i++)
+ {
+ Config.top+=100;
+ label_a5133_SCAN[i]= InitLabel(Config);
+ testa5133ScrollView->Add(label_a5133_SCAN[i]);
+ }
+
+ ButtonConfig_ext_t buttonconfig;
+ buttonconfig.x = 55;
+ buttonconfig.y = 80;
+ buttonconfig.w = 180;
+ buttonconfig.h = 88;
+ buttonconfig.label_x=40;
+ buttonconfig.label_y=0;
+ buttonconfig.Fontsize=30;
+ buttonconfig.ViewId="discovery";
+ buttonconfig.str="discovery";
+ buttonconfig.ALIGN=TEXT_ALIGNMENT_LEFT;
+
+ button=SetTheButton_ext(buttonconfig);
+ testa5133ScrollView->Add(button);
+
+
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(testPresenter::GetInstance());
+ if (draglistener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::draglistener can not be nullptr!");
+ return false;
+ }
+ testa5133ScrollView->SetOnDragListener(draglistener);
+
+
+
+ labelButton_next= testAboutView::GetInstance()->init_button_next(270,80,"SEChipTestbutton_next");
+ testa5133ScrollView->Add(labelButton_next);
+
+ Title= testAboutView::GetInstance()->init_title(165,45,"BT_TEST");
+ testa5133ScrollView->Add(Title);
+
+
+ testa5133ScrollView->SetTouchable(true);
+ testa5133ScrollView->SetDraggable(true);
+ uint32_t tick;
+ osStatus_t retTimer;
+ BR_TEST_timer = osTimerNew((osTimerFunc_t)mgdataTimerCallBack, osTimerPeriodic, NULL, NULL);
+ tick =5000;// osMs2Tick(1000);
+ retTimer = osTimerStart(BR_TEST_timer, tick);
+ if (retTimer != osOK && BR_TEST_timer != NULL) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);
+ osTimerDelete(BR_TEST_timer);
+ BR_TEST_timer = NULL;
+ return false;
+ }
+
+ discovery_falg=false;
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_P_TEST);
+ if (cnt == 0) {
+ uapi_pm_add_sleep_veto(PM_ID_P_TEST);
+ } else {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,"CAT1 SERVICE MCU has got pm_id_cat1 vote\r\n");
+ }
+
+ return true;
+ }
+
+ UIScrollView *testA5133View::testA5133InitIView()
+ {
+ if (!testA5133ScrollViewcrollViewinit())
+ {
+ return nullptr;
+ }
+ return testa5133ScrollView;
+ }
+}
+
{DEEPSLEEP,"deepsleep","xxxxxxxxx",true},\r
{shutdown,"shutdown","xxxxxxxxx",true},\r
{FACTORYRESE,"FactoryReset","xxxxxxxxx",true},\r
+ #ifdef SUPPORT_A5133_SERVICE\r
+ {RF5133,"RF5133","xxxxxxxxx",true},\r
+ #endif\r
};\r
// {FACTORYRESETVIEW,"FactoryResetButton",true},\r
// {SYSTEMLUPGRADE,"systemupgread",true},\r
mcu_pm_lcd_off(NULL,NULL);\r
return true;\r
}\r
-\r
+ \r
if(strcmp(view.GetViewId(),"FactoryReset") == 0)\r
{\r
//TODO: close bt and cat1 , then deepsleep\r
{DEEPSLEEP,"deepsleep","DeepSleepCurrent" ,&testView::ChangeoldTESTView},\r
{shutdown,"shutdown","shutdown" ,&testView::ChangeoldTESTView},\r
{FACTORYRESE,"FactoryReset","FactoryReset", &testView::ChangeoldTESTView},\r
+ #ifdef SUPPORT_A5133_SERVICE\r
+ {RF5133,"RF5133","RF5133", &testView::ChangeA5133TESTView},\r
+ #endif\r
// {SYSTEMLUPGRADE,"systemupgread","系统升级",&testView::ChangeSystemAboutView},\r
// {TEST,"testButton","测试模式", &testView::ChangeSystemAboutView},\r
\r
\r
testView::testView()\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testView::testView");\r
g_pSystemView = this;\r
}\r
\r
testView::~testView()\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::~SystemView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testView::~testView");\r
ClearAll();\r
g_pSystemView = nullptr;\r
}\r
delete test_G_view;//13\r
test_G_view= nullptr;\r
}\r
+#ifdef SUPPORT_A5133_SERVICE\r
+ if(test_A5133_view)\r
+ {\r
+ delete test_A5133_view;//13\r
+ test_A5133_view= nullptr;\r
+ }\r
+#endif\r
// delete test_G_view;//13\r
// test_G_view= nullptr;\r
\r
SystemScrollView[TESTVIEW] = new UIScrollView();\r
if (SystemScrollView[TESTVIEW] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemScrollView new fail!");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheSystemScrollView new fail!");\r
return false;\r
}\r
SystemScrollView[TESTVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeLCDTESTView");\r
test_LCD_view = new testLCDView();\r
if (test_LCD_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeTPTESTView");\r
test_TP_view = new testTPView();\r
if (test_TP_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMGTESTView");\r
test_MG_view = new testMagicView();\r
if (test_MG_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangLUMTESTView");\r
test_lum_view = new testLUMView();\r
if (test_lum_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangchargingTESTView");\r
test_charging_view = new testCHANINGView();\r
if (test_charging_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangspeakTESTView");\r
test_speak_view = new testSPEAKView();\r
if (test_speak_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangmotorTESTView");\r
test_motor_view = new testMOTORView();\r
if (test_motor_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeCAT1TESTView");\r
test_cat1_view = new testcat1View();\r
if (test_cat1_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangKEYTESTView");\r
test_KEY_view = new testbuttonView();\r
if (test_KEY_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMPTESTView");\r
test_MP_view = new testmicrohoneView();\r
if (test_MP_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeHRTESTView");\r
test_hr_view = new testhrsenson1View();\r
if (test_hr_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeGTESTView");\r
test_G_view = new testgsensonView();\r
if (test_G_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeoldTESTView");\r
test_old_view = new testoldView();\r
if (test_old_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeBTTESTView");\r
test_BT_view = new testBTView();\r
if (test_BT_view == nullptr)\r
{\r
{\r
if (SystemScrollView[thisView] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView");\r
test_SEChip_view = new testSEChipView();\r
if (test_SEChip_view == nullptr)\r
{\r
}\r
return true;\r
}\r
-\r
-\r
+#ifdef SUPPORT_A5133_SERVICE\r
+ bool testView::ChangeA5133TESTView(int16_t thisView)\r
+ {\r
+ if (SystemScrollView[thisView] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeA5133TESTView");\r
+ test_A5133_view = new testA5133View();\r
+ if (test_A5133_view == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
+ return false;\r
+ }\r
+ SystemScrollView[thisView] = test_A5133_view->testA5133InitIView();\r
+ RootView::GetInstance()->Add(SystemScrollView[thisView]);\r
+ }\r
+ return true;\r
+ }\r
+#endif\r
\r
UIScrollView *testView::GetSystemScrollView(int ViewId)\r
{\r
test_SEChip_view = nullptr;\r
SystemScrollView[hideView]=nullptr;\r
break;\r
- \r
+#ifdef SUPPORT_A5133_SERVICE\r
+ case RF5133:\r
+ RootView::GetInstance()->Remove(SystemScrollView[hideView]);\r
+ delete test_A5133_view; \r
+ test_A5133_view = nullptr;\r
+ SystemScrollView[hideView]=nullptr;\r
+ break;\r
+#endif\r
default:\r
break;\r
}\r
}\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "change>>>>>>>>>>>>>");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "change>>>>>>>>>>>hideView %d > showView %d >>>",hideView,showView);\r
\r
}\r
/* -------------------------------------------------------------------------- */\r
'defines': ['CUSTOM_Z1'],
'fs_image_path':'z1',
},
+ 'brandy-native-js-lt22': {
+ 'base_target_name': 'brandy-native-js',
+ 'defines': ['SUPPORT_A5133_SERVICE'],
+ 'ram_component':["driver_a5133","a5133_service"],
+ 'fs_image_path':'fd230',
+ },
#native-xts: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本
'brandy-xts': {
'board': 'evb',
'pack_brandy_native_js_user': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-user'],
'pack_brandy_native_js_fd230': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-fd230'],
'pack_brandy_native_js_z1': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-z1'],
+ 'pack_brandy_native_js_lt22': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-lt22'],
'pack_brandy_xts': ['brandy-ssb', 'brandy-xts-r', 'brandy-xts'],
'brandy_all': ['brandy-ssb',
// #endif
{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO5 NC
+#ifdef A5133_USE_HW_SPI
{ HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO6 SPI1 DI
{ HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO7 SPI1 DO
{ HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO8 SPI1 CLK
{ HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO9 SPI1 CS0
{ HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO10 SPI1 CS1 NC
-
+#else
+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO6 SPI1 DI
+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO7 SPI1 DO
+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO8 SPI1 CLK
+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO9 SPI1 CS0
+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_MGPIO10 SPI1 CS1 NC
+#endif
{ HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO11 i2c0 SCL NC
{ HAL_PIO_FUNC_I2C0_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO12 I2C0 SDA
{ HAL_PIO_FUNC_I2C1_M1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_MGPIO13 I2C1 SCL touch i2c
add_subdirectory_if_exist(rotary_encoder)
add_subdirectory_if_exist(vibrator/service)
add_subdirectory_if_exist(cywee)
+add_subdirectory_if_exist(a5133)
--- /dev/null
+/********************************************************************\r
+* A5133Config.h\r
+* RF Chip-A5133 Config Definitions\r
+*\r
+********************************************************************/\r
+#ifndef _A5133CONFIG_h_\r
+#define _A5133CONFIG_h_\r
+#define code \r
+/************************************\r
+* Define DR\r
+************************************/\r
+#define DR_4Mbps //IF=4MHz \r
+//#define DR_2Mbps //IF=2MHz \r
+//#define DR_1Mbps //IF=1MHz\r
+//#define DR_500Kbps //IF=1MHz\r
+\r
+#ifdef DR_4Mbps\r
+const Uint8 code A5133_RFConfigTab_Main[]=\r
+{\r
+ 0x00, //RESET register, \r
+ 0x62, //MODE register, \r
+ 0x00, //CALIBRATION register, \r
+ 0x3F, //FIFO1 register,\r
+ 0x00, //FIFO2 register,\r
+ 0x00, //FIFO register, \r
+ 0x00, //IDDATA register, \r
+ 0x00, //RCOSC1 register,\r
+ 0x00, //RCOSC2 register,\r
+ 0x0C, //RCOSC3 register,\r
+ 0x02, //CKO register,\r
+ 0x01, //GPIO1 register\r
+ 0x1D, //GPIO2 register,\r
+ 0x1F, //DATARATECLOCK register,\r
+ 0x00, //PLL1 register,\r
+ 0x1E, //PLL2 register, \r
+ 0x59, //PLL3 register,\r
+ 0x74, //PLL4 register,\r
+ 0x01, //PLL5 register,\r
+ 0x28, //ChannelGroup1 register,\r
+ 0x50, //ChannelGroup1 register,\r
+ 0x2D, //TX1 register, \r
+ 0x40, //TX2 register,\r
+ 0x1B, //DELAY1 register,\r
+ 0x40, //DELAY2 register,\r
+ 0x70, //RX register,\r
+ 0x7B, //RXGAIN1 register,\r
+ 0xC0, //RXGAIN2 register, \r
+ 0x3C, //RXGAIN3 register,\r
+ 0xCA, //RXGAIN4 register,\r
+ 0x00, //RSSI register,\r
+ 0xC1, //ADC register,\r
+ 0x00, //CODE1 register,\r
+ 0x00, //CODE2 register, \r
+ 0x00, //CODE3 register,\r
+ 0xE4, //IFCAL1 register, \r
+ 0x01, //IFCAL2 register, \r
+ 0x4F, //VCOCCAL register, \r
+ 0xC0, //VCOCAL1 register,\r
+ 0x80, //VCOCAL2 register,\r
+ 0x30, //VCO deviation 1 register,\r
+ 0x40, //VCO deviation 2 register,\r
+ 0x00, //DSA register,\r
+ 0xFF, //VCO Modulation delay register, \r
+ 0x40, //BATTERY register, \r
+ 0xA7, //TXTEST register,\r
+ 0x57, //RXDEM1 register,\r
+ 0x74, //RXDEM2 register,\r
+ 0xF3, //CPC1 register,\r
+ 0x33, //CPC2 register, \r
+ 0x4D, //CRYSTAL register,\r
+ 0x15, //PLLTEST register,\r
+ 0x0F, //VCOTEST register,\r
+ 0x00, //RF Analog register,\r
+ 0x00, //Key data register,\r
+ 0x33, //Channel select register, \r
+ 0x00, //ROM register,\r
+ 0x00, //DataRate register,\r
+ 0x00, //FCR register,\r
+ 0x00, //ARD register,\r
+ 0x00, //AFEP register,\r
+ 0x00, //FCB register,\r
+ 0x00, //KEYC register,\r
+ 0x00 //USID register,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x20[]=\r
+{\r
+ 0x0E, //page0, \r
+ 0x00, //page1, \r
+ 0x00, //Page2,\r
+ 0x00, //page3,\r
+ 0x00, //page4,\r
+ 0x00, //page5,\r
+ 0x00, //page6,\r
+ 0x00, //page7,\r
+ 0x00, //page8,\r
+ 0x00, //page9,\r
+ 0x02, //page10,\r
+ 0x00, //page11,\r
+ 0x00 //page12, \r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x21[]=\r
+{\r
+ 0x09, //page0, \r
+ 0x00, //page1, \r
+ 0x00, //Page2,\r
+ 0x00, //page3,\r
+ 0x00, //page4,\r
+ 0x00, //page5,\r
+ 0xE0, //page6,\r
+ 0x00, //page7,\r
+ 0x2C, //page8,\r
+ 0x4F, //page9,\r
+ 0x01, //page10\r
+ 0x42, //page11\r
+ 0x56 //page12 crystal type 3225, CL=9pF, CSXTL=108\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x22[]=\r
+{\r
+ 0x00, //page0, \r
+ 0x10, //page1,\r
+ 0x00, //Page2,\r
+ 0x10, //page3,\r
+ 0x00, //page4,\r
+ 0x04 //page5, \r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x2A[]=\r
+{\r
+ 0x00, //page0, \r
+ 0x01, //page1, \r
+ 0xF0, //Page2,\r
+ 0x80, //page3,\r
+ 0x80, //page4,\r
+ 0x48, //page5,\r
+ 0x03, //page6,\r
+ 0xC0, //page7,\r
+ 0x3A, //page8,\r
+ 0x3E, //page9,\r
+ 0xE8, //page10,\r
+ 0x80, //page11,\r
+ 0x00 //page12,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x38[]=\r
+{\r
+ 0x80, //page0,\r
+ 0x50, //page1,\r
+ 0x20, //page2,\r
+ 0x64, //page3,\r
+ 0x20, //page4,\r
+ 0x40, //page5, \r
+ 0x60, //page6,\r
+ 0x04, //page7,\r
+ 0x00, //page8,\r
+ 0x00, //page9,\r
+ 0x00, //page10,\r
+ 0x00 //page11,\r
+}; \r
+\r
+const Uint8 code ACQ_Tab[]=\r
+{\r
+ 0x03,0x50, 0x03,0x50, 0x03,0x50, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x00, //0c00~0x0F,\r
+ 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x02,0xB0, 0x03,0x20, 0x02,0xc0, 0x02,0x80, 0x03,0xF0,\r
+ 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x03,0x20, 0x03,0x00, 0x03,0x20, 0x02,0xa0, //0x10~0x1F\r
+ 0x03,0x60, 0x02,0x80, 0x03,0x30, 0x03,0x40, 0x03,0x50, 0x03,0x40, 0x03,0x50, 0x03,0x00\r
+}; \r
+#endif /* end of DR_4Mbps */\r
+\r
+#ifdef DR_2Mbps\r
+const Uint8 code A5133_RFConfigTab_Main[]=\r
+{\r
+ 0x00, //RESET register, \r
+ 0x62, //MODE register, \r
+ 0x00, //CALIBRATION register, \r
+ 0x3F, //FIFO1 register,\r
+ 0x00, //FIFO2 register,\r
+ 0x00, //FIFO register, \r
+ 0x00, //IDDATA register, \r
+ 0x00, //RCOSC1 register,\r
+ 0x00, //RCOSC2 register,\r
+ 0x0C, //RCOSC3 register,\r
+ 0x02, //CKO register,\r
+ 0x01, //GPIO1 register\r
+ 0x1D, //GPIO2 register,\r
+ 0x1F, //DATARATECLOCK register,\r
+ 0x00, //PLL1 register,\r
+ 0x1E, //PLL2 register, \r
+ 0x59, //PLL3 register,\r
+ 0x74, //PLL4 register,\r
+ 0x01, //PLL5 register,\r
+ 0x28, //ChannelGroup1 register,\r
+ 0x50, //ChannelGroup1 register,\r
+ 0x2C, //TX1 register, \r
+ 0x40, //TX2 register,\r
+ 0x1B, //DELAY1 register,\r
+ 0x40, //DELAY2 register,\r
+ 0x70, //RX register,\r
+ 0x7B, //RXGAIN1 register,\r
+ 0xC0, //RXGAIN2 register, \r
+ 0x1C, //RXGAIN3 register,\r
+ 0xCA, //RXGAIN4 register,\r
+ 0x00, //RSSI register,\r
+ 0xC1, //ADC register,\r
+ 0x00, //CODE1 register,\r
+ 0x00, //CODE2 register, \r
+ 0x00, //CODE3 register,\r
+ 0xA4, //IFCAL1 register, \r
+ 0x01, //IFCAL2 register, \r
+ 0x4F, //VCOCCAL register, \r
+ 0xC0, //VCOCAL1 register,\r
+ 0x80, //VCOCAL2 register,\r
+ 0x30, //VCO deviation 1 register,\r
+ 0x40, //VCO deviation 2 register,\r
+ 0x00, //DSA register,\r
+ 0xFF, //VCO Modulation delay register, \r
+ 0x40, //BATTERY register, \r
+ 0xA7, //TXTEST register,\r
+ 0x57, //RXDEM1 register,\r
+ 0x74, //RXDEM2 register,\r
+ 0xF3, //CPC1 register,\r
+ 0x33, //CPC2 register, \r
+ 0x4D, //CRYSTAL register,\r
+ 0x15, //PLLTEST register,\r
+ 0x0F, //VCOTEST register,\r
+ 0x00, //RF Analog register,\r
+ 0x00, //Key data register,\r
+ 0x11, //Channel select register, \r
+ 0x00, //ROM register,\r
+ 0x00, //DataRate register,\r
+ 0x00, //FCR register,\r
+ 0x00, //ARD register,\r
+ 0x00, //AFEP register,\r
+ 0x00, //FCB register,\r
+ 0x00, //KEYC register,\r
+ 0x00 //USID register,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x20[]=\r
+{\r
+ 0x0E, //page0, \r
+ 0x00, //page1, \r
+ 0x00, //Page2,\r
+ 0x00, //page3,\r
+ 0x00, //page4,\r
+ 0x00, //page5,\r
+ 0x00, //page6,\r
+ 0x00, //page7,\r
+ 0x00, //page8,\r
+ 0x00, //page9,\r
+ 0x02, //page10,\r
+ 0x00, //page11,\r
+ 0x00 //page12,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x21[]=\r
+{\r
+ 0x09, //page0, \r
+ 0x00, //page1, \r
+ 0x00, //Page2,\r
+ 0x00, //page3,\r
+ 0x00, //page4,\r
+ 0x00, //page5,\r
+ 0xE0, //page6,\r
+ 0x00, //page7,\r
+ 0x2C, //page8,\r
+ 0x4F, //page9,\r
+ 0x01, //page10\r
+ 0x42, //page11\r
+ 0x56 //page12\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x22[]=\r
+{\r
+ 0x00, //page0, \r
+ 0x10, //page1,\r
+ 0x00, //Page2,\r
+ 0x10, //page3,\r
+ 0x00, //page4,\r
+ 0x04 //page5,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x2A[]=\r
+{\r
+ 0x00, //page0, \r
+ 0x01, //page1, \r
+ 0xF0, //Page2,\r
+ 0x80, //page3,\r
+ 0x80, //page4,\r
+ 0x48, //page5,\r
+ 0x03, //page6,\r
+ 0xC0, //page7,\r
+ 0x3A, //page8,\r
+ 0x3E, //page9,\r
+ 0xE8, //page10,\r
+ 0x80, //page11,\r
+ 0x00 //page12,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x38[]=\r
+{\r
+ 0x80, //page0,\r
+ 0x50, //page1,\r
+ 0x20, //page2,\r
+ 0x64, //page3,\r
+ 0x20, //page4,\r
+ 0x40, //page5, \r
+ 0x60, //page6,\r
+ 0x04, //page7,\r
+ 0x00, //page8,\r
+ 0x00, //page9,\r
+ 0x00, //page10,\r
+ 0x00 //page11,\r
+};\r
+\r
+const Uint8 code ACQ_Tab[]=\r
+{\r
+ 0x03,0x50, 0x03,0x50, 0x03,0x50, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x00, //0c00~0x0F,\r
+ 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x02,0xB0, 0x03,0x20, 0x02,0xc0, 0x02,0x80, 0x03,0xF0,\r
+ 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x03,0x20, 0x03,0x00, 0x03,0x20, 0x02,0xa0, //0x10~0x1F\r
+ 0x03,0x60, 0x02,0x80, 0x03,0x30, 0x03,0x40, 0x03,0x50, 0x03,0x40, 0x03,0x50, 0x03,0x00\r
+};\r
+#endif /* end of DR_2Mbps */\r
+\r
+\r
+#ifdef DR_1Mbps\r
+const Uint8 code A5133_RFConfigTab_Main[]=\r
+{\r
+ 0x00, //RESET register, \r
+ 0x62, //MODE register, \r
+ 0x00, //CALIBRATION register, \r
+ 0x3F, //FIFO1 register,\r
+ 0x00, //FIFO2 register,\r
+ 0x00, //FIFO register, \r
+ 0x00, //IDDATA register, \r
+ 0x00, //RCOSC1 register,\r
+ 0x00, //RCOSC2 register,\r
+ 0x0C, //RCOSC3 register,\r
+ 0x02, //CKO register,\r
+ 0x01, //GPIO1 register\r
+ 0x1D, //GPIO2 register,\r
+ 0x1F, //DATARATECLOCK register,\r
+ 0x00, //PLL1 register,\r
+ 0x1E, //PLL2 register, \r
+ 0x59, //PLL3 register,\r
+ 0x74, //PLL4 register,\r
+ 0x01, //PLL5 register,\r
+ 0x28, //ChannelGroup1 register,\r
+ 0x50, //ChannelGroup1 register,\r
+ 0x2B, //TX1 register, \r
+ 0x40, //TX2 register,\r
+ 0x1B, //DELAY1 register,\r
+ 0x40, //DELAY2 register,\r
+ 0x70, //RX register,\r
+ 0x7B, //RXGAIN1 register,\r
+ 0xC0, //RXGAIN2 register, \r
+ 0x0C, //RXGAIN3 register,\r
+ 0xCA, //RXGAIN4 register,\r
+ 0x00, //RSSI register,\r
+ 0xC1, //ADC register,\r
+ 0x00, //CODE1 register,\r
+ 0x00, //CODE2 register, \r
+ 0x00, //CODE3 register,\r
+ 0x84, //IFCAL1 register, \r
+ 0x01, //IFCAL2 register, \r
+ 0x4F, //VCOCCAL register, \r
+ 0xC0, //VCOCAL1 register,\r
+ 0x80, //VCOCAL2 register,\r
+ 0x30, //VCO deviation 1 register,\r
+ 0x40, //VCO deviation 2 register,\r
+ 0x00, //DSA register,\r
+ 0x40, //VCO Modulation delay register, \r
+ 0x40, //BATTERY register, \r
+ 0xE7, //TXTEST register,\r
+ 0x57, //RXDEM1 register,\r
+ 0x74, //RXDEM2 register,\r
+ 0xF3, //CPC1 register,\r
+ 0x33, //CPC2 register, \r
+ 0x4D, //CRYSTAL register,\r
+ 0x15, //PLLTEST register,\r
+ 0x0F, //VCOTEST register,\r
+ 0x00, //RF Analog register,\r
+ 0x00, //Key data register,\r
+ 0x03, //Channel select register, \r
+ 0x00, //ROM register,\r
+ 0x00, //DataRate register,\r
+ 0x00, //FCR register,\r
+ 0x00, //ARD register,\r
+ 0x00, //AFEP register,\r
+ 0x00, //FCB register,\r
+ 0x00, //KEYC register,\r
+ 0x00 //USID register,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x20[]=\r
+{\r
+ 0x0E, //page0, \r
+ 0x00, //page1, \r
+ 0x00, //Page2,\r
+ 0x00, //page3,\r
+ 0x00, //page4,\r
+ 0x00, //page5,\r
+ 0x00, //page6,\r
+ 0x00, //page7,\r
+ 0x00, //page8,\r
+ 0x00, //page9,\r
+ 0x02, //page10,\r
+ 0x00, //page11,\r
+ 0x00 //page12,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x21[]=\r
+{\r
+ 0x09, //page0, \r
+ 0x00, //page1, \r
+ 0x00, //Page2,\r
+ 0x00, //page3,\r
+ 0x00, //page4,\r
+ 0x00, //page5,\r
+ 0xE0, //page6,\r
+ 0x00, //page7,\r
+ 0x2C, //page8,\r
+ 0x4F, //page9,\r
+ 0x01, //page10\r
+ 0x42, //page11\r
+ 0x56 //page12\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x22[]=\r
+{\r
+ 0x00, //page0, \r
+ 0x10, //page1,\r
+ 0x00, //Page2,\r
+ 0x10, //page3,\r
+ 0x00, //page4,\r
+ 0x04 //page5,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x2A[]=\r
+{\r
+ 0x00, //page0, \r
+ 0x01, //page1, \r
+ 0xF0, //Page2,\r
+ 0x80, //page3,\r
+ 0x80, //page4,\r
+ 0x48, //page5,\r
+ 0x03, //page6,\r
+ 0xC0, //page7,\r
+ 0x3A, //page8,\r
+ 0x3E, //page9,\r
+ 0xE8, //page10,\r
+ 0x80, //page11,\r
+ 0x00 //page12,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x38[]=\r
+{\r
+ 0x80, //page0,\r
+ 0x50, //page1,\r
+ 0x20, //page2,\r
+ 0x64, //page3,\r
+ 0x20, //page4,\r
+ 0x40, //page5, \r
+ 0x60, //page6,\r
+ 0x04, //page7,\r
+ 0x00, //page8,\r
+ 0x00, //page9,\r
+ 0x00, //page10,\r
+ 0x00 //page11,\r
+};\r
+\r
+const Uint8 code ACQ_Tab[]=\r
+{\r
+ 0x03,0x50, 0x03,0x50, 0x03,0x50, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x00, //0c00~0x0F,\r
+ 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x02,0xB0, 0x03,0x20, 0x02,0xc0, 0x02,0x80, 0x03,0xF0,\r
+ 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x03,0x20, 0x03,0x00, 0x03,0x20, 0x02,0xa0, //0x10~0x1F\r
+ 0x03,0x60, 0x02,0x80, 0x03,0x30, 0x03,0x40, 0x03,0x50, 0x03,0x40, 0x03,0x50, 0x03,0x00\r
+};\r
+#endif /* end of DR_1Mbps */\r
+\r
+#ifdef DR_500Kbps \r
+const Uint8 code A5133_RFConfigTab_Main[]=\r
+{\r
+ 0x00, //RESET register, \r
+ 0x62, //MODE register, \r
+ 0x00, //CALIBRATION register, \r
+ 0x3F, //FIFO1 register,\r
+ 0x00, //FIFO2 register,\r
+ 0x00, //FIFO register, \r
+ 0x00, //IDDATA register, \r
+ 0x00, //RCOSC1 register,\r
+ 0x00, //RCOSC2 register,\r
+ 0x0C, //RCOSC3 register,\r
+ 0x02, //CKO register,\r
+ 0x01, //GPIO1 register\r
+ 0x1D, //GPIO2 register,\r
+ 0x1F, //DATARATECLOCK register,\r
+ 0x00, //PLL1 register,\r
+ 0x1E, //PLL2 register,\r
+ 0x59, //PLL3 register,\r
+ 0x74, //PLL4 register,\r
+ 0x01, //PLL5 register,\r
+ 0x28, //ChannelGroup1 register,\r
+ 0x50, //ChannelGroup1 register,\r
+ 0x2B, //TX1 register, \r
+ 0x40, //TX2 register,\r
+ 0x1B, //DELAY1 register,\r
+ 0x40, //DELAY2 register,\r
+ 0x70, //RX register,\r
+ 0x7B, //RXGAIN1 register,\r
+ 0xC0, //RXGAIN2 register, \r
+ 0x0C, //RXGAIN3 register,\r
+ 0xCA, //RXGAIN4 register,\r
+ 0x00, //RSSI register,\r
+ 0xC1, //ADC register,\r
+ 0x00, //CODE1 register,\r
+ 0x00, //CODE2 register, \r
+ 0x00, //CODE3 register,\r
+ 0x84, //IFCAL1 register, \r
+ 0x01, //IFCAL2 register, \r
+ 0x4F, //VCOCCAL register, \r
+ 0xC0, //VCOCAL1 register,\r
+ 0x80, //VCOCAL2 register,\r
+ 0x30, //VCO deviation 1 register,\r
+ 0x40, //VCO deviation 2 register,\r
+ 0x00, //DSA register,\r
+ 0x40, //VCO Modulation delay register, \r
+ 0x40, //BATTERY register, \r
+ 0xE7, //TXTEST register,\r
+ 0x57, //RXDEM1 register,\r
+ 0x74, //RXDEM2 register,\r
+ 0xF3, //CPC1 register,\r
+ 0x33, //CPC2 register, \r
+ 0x4D, //CRYSTAL register,\r
+ 0x15, //PLLTEST register,\r
+ 0x0F, //VCOTEST register,\r
+ 0x00, //RF Analog register,\r
+ 0x00, //Key data register,\r
+ 0x03, //Channel select register, \r
+ 0x00, //ROM register,\r
+ 0x01, //DataRate register,\r
+ 0x00, //FCR register,\r
+ 0x00, //ARD register,\r
+ 0x00, //AFEP register,\r
+ 0x00, //FCB register,\r
+ 0x00, //KEYC register,\r
+ 0x00 //USID register,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x20[]=\r
+{\r
+ 0x0E, //page0,\r
+ 0x00, //page1, \r
+ 0x00, //Page2,\r
+ 0x00, //page3,\r
+ 0x00, //page4,\r
+ 0x00, //page5,\r
+ 0x00, //page6,\r
+ 0x00, //page7,\r
+ 0x00, //page8,\r
+ 0x00, //page9,\r
+ 0x02, //page10,\r
+ 0x00, //page11,\r
+ 0x00 //page12,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x21[]=\r
+{\r
+ 0x09, //page0,\r
+ 0x00, //page1, \r
+ 0x00, //Page2,\r
+ 0x00, //page3,\r
+ 0x00, //page4,\r
+ 0x00, //page5,\r
+ 0xE0, //page6, \r
+ 0x00, //page7,\r
+ 0x2C, //page8,\r
+ 0x4F, //page9,\r
+ 0x01, //page10\r
+ 0x42, //page11\r
+ 0x56 //page12\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x22[]=\r
+{\r
+ 0x00, //page0, \r
+ 0x10, //page1,\r
+ 0x00, //Page2,\r
+ 0x10, //page3,\r
+ 0x00, //page4,\r
+ 0x04 //page5,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x2A[]=\r
+{\r
+ 0x00, //page0,\r
+ 0x01, //page1, \r
+ 0xF0, //Page2,\r
+ 0x80, //page3,\r
+ 0x80, //page4,\r
+ 0x48, //page5,\r
+ 0x03, //page6,\r
+ 0x40, //page7,\r
+ 0x3A, //page8,\r
+ 0x3E, //page9,\r
+ 0xE8, //page10,\r
+ 0x80, //page11,\r
+ 0x00 //page12,\r
+};\r
+\r
+const Uint8 code A5133_RFConfigTab_Addr0x38[]=\r
+{\r
+ 0x80, //page0,\r
+ 0x50, //page1,\r
+ 0x20, //page2,\r
+ 0x64, //page3,\r
+ 0x20, //page4,\r
+ 0x40, //page5, \r
+ 0x60, //page6,\r
+ 0x04, //page7,\r
+ 0x00, //page8,\r
+ 0x00, //page9,\r
+ 0x00, //page10,\r
+ 0x00 //page11,\r
+};\r
+\r
+const Uint8 code ACQ_Tab[]=\r
+{\r
+ 0x03,0x50, 0x03,0x50, 0x03,0x50, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x03,0x00, //0c00~0x0F,\r
+ 0x03,0x40, 0x03,0x40, 0x03,0x40, 0x02,0xB0, 0x03,0x20, 0x02,0xc0, 0x02,0x80, 0x03,0xF0,\r
+ 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x02,0x80, 0x03,0x20, 0x03,0x00, 0x03,0x20, 0x02,0xa0, //0x10~0x1F\r
+ 0x03,0x60, 0x02,0x80, 0x03,0x30, 0x03,0x40, 0x03,0x50, 0x03,0x40, 0x03,0x50, 0x03,0x00\r
+};\r
+#endif /* end of DR_500Kbps */\r
+\r
+#endif\r
--- /dev/null
+#ifndef _A5133_GLOBALVAR_H_\r
+#define _A5133_GLOBALVAR_H_\r
+\r
+#ifdef _MAIN_C_\r
+/************************************************************************\r
+** Global Variable Declaration\r
+************************************************************************/\r
+Uint8 data timer;\r
+Uint16 data TimerCnt;\r
+Uint8 data Slot_TX;\r
+Uint8 data Flag_Timeout;\r
+Uint16 idata RxCnt;\r
+Uint8 data *Uartptr;\r
+Uint8 data UartSendCnt;\r
+Uint8 data CmdBuf[25];\r
+Uint8 idata tmpbuf[80];\r
+Uint16 idata Err_Loss;\r
+Uint16 idata Err_Frame;\r
+Uint32 idata Err_BitCnt;\r
+Uint8 data Flag_Report;\r
+Uint8 idata Flag_FirstLink;\r
+Uint8 idata Flag_MASTER;\r
+\r
+const Uint8 code BitCount_Tab[16] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4};\r
+//const Uint8 //code ID_Tab[8]={0x34,0x75,0xC5,0x2A,0xC7,0x33,0x45,0xEA}; //ID code\r
+const Uint8 code ID_Tab[8]={0x55,0x55,0x55,0x55,0x34,0x75,0xC5,0x6A}; //ID2 code\r
+//const Uint8 code ID_Tab[8]={0xFF,0xFF,0xFF,0xFF,0x36,0x75,0xC5,0xBA}; //ID2 code\r
+//const Uint8 code ID_Tab[8]={0x34,0x75,0xC5,0x2A,0x34,0x75,0xC5,0x2A}; //ID2 code\r
+const Uint8 code KeyData_Tab[16]={0x00,0x00,0x00,0x00,0x00,0x0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //keyData code\r
+const Uint8 code FCB_Tab[20]={0x00,0x00,0x00,0x00,0x00,0x15,0x20,0x25,0x30,0x35,0x40,0x45,0x50,0x55,0x60,0x65,0x70,0x75,0x80,0x85}; //keyData code\r
+const Uint8 code PN9_Tab[]=\r
+{ 0xFF,0x83,0xDF,0x17,0x32,0x09,0x4E,0xD1,\r
+ 0xE7,0xCD,0x8A,0x91,0xC6,0xD5,0xC4,0xC4,\r
+ 0x40,0x21,0x18,0x4E,0x55,0x86,0xF4,0xDC,\r
+ 0x8A,0x15,0xA7,0xEC,0x92,0xDF,0x93,0x53,\r
+ 0x30,0x18,0xCA,0x34,0xBF,0xA2,0xC7,0x59,\r
+ 0x67,0x8F,0xBA,0x0D,0x6D,0xD8,0x2D,0x7D,\r
+ 0x54,0x0A,0x57,0x97,0x70,0x39,0xD2,0x7A,\r
+ 0xEA,0x24,0x33,0x85,0xED,0x9A,0x1D,0xE0,\r
+};\r
+\r
+#else \r
+/************************************************************************\r
+** Extern Global Variable Declaration\r
+************************************************************************/\r
+extern Uint8 data timer;\r
+extern Uint16 data TimerCnt;\r
+extern Uint8 data Slot_TX;\r
+extern Uint8 data Flag_Timeout;\r
+extern Uint16 idata RxCnt;\r
+extern Uint8 data *Uartptr;\r
+extern Uint8 data UartSendCnt;\r
+extern Uint8 data CmdBuf[25];\r
+extern Uint8 idata tmpbuf[80];\r
+extern Uint16 idata Err_Loss;\r
+extern Uint16 idata Err_Frame;\r
+extern Uint32 idata Err_BitCnt;\r
+extern Uint8 data Flag_Report;\r
+extern Uint8 idata Flag_FirstLink;\r
+extern Uint8 data Flag_MASTER;\r
+\r
+extern const Uint8 code BitCount_Tab[16];\r
+extern const Uint8 code ID_Tab[8];\r
+extern const Uint8 code KeyData_Tab[];\r
+extern const Uint8 code FCB_Tab[];\r
+extern const Uint8 code PN9_Tab[];\r
+\r
+#endif\r
+\r
+#endif\r
+\r
--- /dev/null
+/********************************************************************* **\r
+** Device: A5133\r
+** File: main.c\r
+** Author: JPH\r
+** Target: A8xxx\r
+** Tools: ICE\r
+** Created: \r
+** Description:\r
+** This file is a sample code for your reference.\r
+**\r
+** Copyright (C) 2007 AMICCOM Electronics Corp.\r
+**\r
+** Revision history:\r
+**\r
+*********************************************************************/\r
+#include "debug_print.h"\r
+#include "errcode.h"\r
+\r
+#include "A5133define.h"\r
+// #include "A8105Reg.h"\r
+\r
+#include "A5133reg.h"\r
+#include "A5133Config.h"\r
+#include "A5133Uti.h"\r
+#include "A5133main.h"\r
+#include "platform_core.h"\r
+#include "errcode.h"\r
+\r
+/*********************************************************************\r
+** I/O Declaration\r
+// S_MGPIO6 SPI1 DI\r
+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO7 SPI1 DO\r
+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO8 SPI1 CLK\r
+ { HAL_PIO_FUNC_SPI1, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_MGPIO9 SPI1 CS0\r
+*********************************************************************/\r
+\r
+\r
+static void nop(void){}\r
+\r
+#define idata\r
+\r
+/*********************************************************************\r
+** Constant Declaration\r
+*********************************************************************/\r
+#define TIMEOUT 50\r
+#define t0hrel 1333//1000\r
+#define BaudRate38400 (65536-((16000000)/(32*38400)))\r
+\r
+/************************************************************************\r
+** Global Variable Declaration\r
+************************************************************************/\r
+Uint8 data timer;\r
+Uint16 data TimerCnt;\r
+Uint8 data Slot_TX;\r
+Uint8 data Flag_Timeout;\r
+Uint16 idata RxCnt;\r
+Uint8 data *Uartptr;\r
+// Uint8 data UartSendCnt;\r
+Uint8 data CmdBuf[25];\r
+Uint8 idata tmpbuf[80];\r
+Uint16 idata Err_Loss;\r
+Uint16 idata Err_Frame;\r
+Uint32 idata Err_BitCnt;\r
+// Uint8 data Flag_Report;\r
+// Uint8 idata Flag_FirstLink;\r
+// Uint8 idata Flag_MASTER;\r
+Uint8 idata Mem_RH;\r
+Uint8 idata Mem_RL;\r
+\r
+const Uint8 code BitCount_Tab[16] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4};\r
+const Uint8 code ID_Tab[8]={0xC3,0x3C,0x95,0x6A,0x36,0x75,0xC5,0x2A};//ID code\r
+//const Uint8 //code ID_Tab[8]={0x34,0x75,0xC5,0x2A,0xC7,0x33,0x45,0xEA};//ID code\r
+//const Uint8 code ID_Tab[8]={0x55,0x55,0x55,0x55,0x34,0x75,0xC5,0x6A}; //ID2 code\r
+//const Uint8 code ID_Tab[8]={0xFF,0xFF,0xFF,0xFF,0x36,0x75,0xC5,0xBA}; //ID2 code\r
+//const Uint8 code ID_Tab[8]={0x34,0x75,0xC5,0x2A,0x34,0x75,0xC5,0x2A}; //ID2 code\r
+const Uint8 code KeyData_Tab[16]={0x00,0x00,0x00,0x00,0x00,0x0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //keyData code\r
+const Uint8 code FCB_Tab[20]={0x00,0x00,0x00,0x00,0x00,0x15,0x20,0x25,0x30,0x35,0x40,0x45,0x50,0x55,0x60,0x65,0x70,0x75,0x80,0x85}; //keyData code\r
+const Uint8 code PN9_Tab[]=\r
+{ 0xFF,0x83,0xDF,0x17,0x32,0x09,0x4E,0xD1,\r
+ 0xE7,0xCD,0x8A,0x91,0xC6,0xD5,0xC4,0xC4,\r
+ 0x40,0x21,0x18,0x4E,0x55,0x86,0xF4,0xDC,\r
+ 0x8A,0x15,0xA7,0xEC,0x92,0xDF,0x93,0x53,\r
+ 0x30,0x18,0xCA,0x34,0xBF,0xA2,0xC7,0x59,\r
+ 0x67,0x8F,0xBA,0x0D,0x6D,0xD8,0x2D,0x7D,\r
+ 0x54,0x0A,0x57,0x97,0x70,0x39,0xD2,0x7A,\r
+ 0xEA,0x24,0x33,0x85,0xED,0x9A,0x1D,0xE0,\r
+};\r
+\r
+\r
+/*********************************************************************\r
+* main loop\r
+*********************************************************************/\r
+void a5133_main(Uint8 Flag_MASTER)\r
+{\r
+ \r
+ if(RF_Init())/* init RF */\r
+ Err_State();\r
+\r
+ if (Flag_MASTER) \r
+ { \r
+ while(1)\r
+ {\r
+ RF_WriteReg(GIO1_REG,0x01);/* gio1-wtr */\r
+ RF_WriteReg(GIO2_REG,0x1D);/* gio2-trxd */\r
+ RF_WriteReg(CKO_REG,0x02);/* cko-dck */\r
+\r
+ RF_FIFOLength(64-1);/* fifo length 64 bytes */ \r
+ RF_StrobeCmd(CMD_PLL);\r
+ RF_SetCH(80);/* ch=80, freq=5805.001MHz */\r
+ /* To set RF channel */\r
+ /* RF base Freq : 5725.001MHz */\r
+ /* Channel step : 1MHz */\r
+ /* SetCH : 80 */\r
+ /* RF Frequency = RF base Freq + (Channel step * SetCH) = 5725.001MHz + ( 1MHz * 80 ) = 5805.001MHz */\r
+ \r
+ RxCnt = 0;\r
+ Err_Loss=0;\r
+ Err_Frame=0;\r
+ Err_BitCnt = 0;\r
+ timer=0;\r
+ // TR0=1; \r
+ // EA=1; \r
+ \r
+ while(1)\r
+ { \r
+ RF_FIFOWrite(64);/* write data to tx fifo */\r
+ if(RF_LVR_Check())/* check if BOD reset has occurred */\r
+ break;/* exit loop & re-RF init */\r
+ else\r
+ RF_StrobeCmd(CMD_TX);/* transmit packet */\r
+ \r
+ Delay10us(1);\r
+ while(a5133_gpio_get_gio1_value());/* wait transmit completed */\r
+ \r
+ if(RF_LVR_Check())/* check if BOD reset has occurred */\r
+ break;/* exit loop & re-RF init */\r
+ else\r
+ RF_StrobeCmd(CMD_RX); \r
+ \r
+ timer=0;\r
+ Flag_Timeout=0;\r
+ while(a5133_gpio_get_gio1_value()==1 && Flag_Timeout==0);/* wait receive completed */\r
+ if (Flag_Timeout)\r
+ {\r
+ RF_StrobeCmd(CMD_PLL);/* exit rx mode */\r
+ }\r
+ else\r
+ {\r
+ RxPacket();\r
+ Delay10ms(1);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ else\r
+ { \r
+ while(1)\r
+ {\r
+ RF_WriteReg(GIO1_REG,0x01);/* gio1-wtr */\r
+ RF_WriteReg(GIO2_REG,0x1D);/* gio2-trxd */\r
+ RF_WriteReg(CKO_REG,0x02);/* cko-dck */\r
+\r
+ RF_FIFOLength(64-1);/* write data to tx fifo */ \r
+ RF_StrobeCmd(CMD_PLL);\r
+ RF_SetCH(80);/* ch=80, freq=5805.001MHz */\r
+ \r
+ RxCnt = 0;\r
+ Err_Loss=0;\r
+ Err_Frame=0;\r
+ Err_BitCnt = 0;\r
+ timer=0;\r
+ // TR0=1;\r
+ // EA=1;\r
+\r
+ while(1)\r
+ {\r
+ if(RF_LVR_Check())/* check if BOD reset has occurred */\r
+ break;/* exit loop & re-RF init */\r
+ else\r
+ RF_StrobeCmd(CMD_RX);\r
+ \r
+ Delay10us(1);\r
+ while(a5133_gpio_get_gio1_value());\r
+ RxPacket();\r
+\r
+ RF_FIFOWrite(64);\r
+ if(RF_LVR_Check())/* check if BOD reset has occurred */\r
+ break;/* exit loop & re-RF init */\r
+ else\r
+ RF_StrobeCmd(CMD_TX);\r
+ \r
+ Delay10us(1);\r
+ while(a5133_gpio_get_gio1_value()); \r
+ }\r
+ }\r
+ }\r
+}\r
+\r
+/************************************************************************\r
+** ISR_Timer0\r
+************************************************************************/\r
+void ISR_Timer0 (void) //interrupt 1\r
+{\r
+ //set next timer\r
+ \r
+ // TF0 = 0; // Clear Timer0 interrupt\r
+ // TH0 = (65536-t0hrel)>>8; // Reload Timer0 high byte,low byte\r
+ // TL0 = 65536-t0hrel;\r
+ \r
+ timer++;\r
+ if (timer == TIMEOUT)\r
+ Flag_Timeout=1;\r
+\r
+ if (timer==2)\r
+ Slot_TX=1;\r
+\r
+ TimerCnt++;\r
+ if (TimerCnt >=500)\r
+ {\r
+ TimerCnt=0;\r
+ CmdBuf[0]=0xF1;\r
+ memcpy(&CmdBuf[1], &RxCnt, 2);\r
+ memcpy(&CmdBuf[3], &Err_Loss, 2);\r
+ memcpy(&CmdBuf[5], &Err_Frame, 2);\r
+ memcpy(&CmdBuf[7], &Err_BitCnt, 4);\r
+\r
+ //输出日志\r
+ PRINT("RxCnt %d , Err_Loss %d , Err_Frame %d , Err_BitCnt %d \n",RxCnt,Err_Loss,Err_Frame,Err_BitCnt);\r
+ // UartSendCnt=12;\r
+ // Uartptr=&CmdBuf[0];\r
+ // SBUF=CmdBuf[0];\r
+ }\r
+}\r
+\r
+/************************************************************************\r
+** Clr_timer\r
+************************************************************************/\r
+void Clr_timer(void)\r
+{\r
+ // TR0 = 0;\r
+ // TH0 = (65536-t0hrel-5)>>8; // Reload Timer0 high byte,low byte\r
+ // TL0 = 65536-t0hrel-5;\r
+ //清楚timer\r
+ timer = 2;\r
+ // TR0 = 1;\r
+}\r
+\r
+/*********************************************************************\r
+** Err_State\r
+*********************************************************************/\r
+void Err_State(void)\r
+{\r
+ //ERR display\r
+ //Error Proc...\r
+ //...\r
+ // while(1);\r
+ PRINT("Err_State\n");\r
+}\r
+ \r
+/************************************************************************\r
+** Reset_RF\r
+************************************************************************/\r
+void RF_Reset(void)\r
+{\r
+ RF_WriteReg(MODE_REG, 0x00); //reset RF chip\r
+}\r
+\r
+/************************************************************************\r
+** RF_WriteID\r
+************************************************************************/\r
+void RF_WriteID(Uint8* ptr)\r
+{\r
+ Uint8 i;\r
+\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(IDCODE_REG);\r
+ for (i=0; i < 8; i++)\r
+ ByteSend(*ptr++);\r
+ a5133_gpio_scs_set_value(1);\r
+}\r
+\r
+/************************************************************************\r
+** RF_ReadID\r
+************************************************************************/\r
+void RF_ReadID(Uint8* ptr)\r
+{\r
+ Uint8 i;\r
+\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(IDCODE_REG | 0x40);\r
+ for (i=0; i<8; i++)\r
+ *ptr++ = ByteRead();\r
+ a5133_gpio_scs_set_value(1);\r
+}\r
+\r
+/*********************************************************************\r
+** RF_ReadPage\r
+*********************************************************************/\r
+Uint8 RF_ReadPage(Uint8 addr, Uint8 page)\r
+{\r
+ Uint8 tmp;\r
+\r
+ RF_WriteReg(RFANALOG_REG, (A5133_RFConfigTab_Main[0x35]&0x0F) | page<<4);\r
+ tmp = RF_ReadReg(addr);\r
+ return tmp;\r
+}\r
+\r
+/*********************************************************************\r
+** RF_WritePage\r
+*********************************************************************/\r
+void RF_WritePage(Uint8 addr, Uint8 wbyte, Uint8 page)\r
+{\r
+ RF_WriteReg(RFANALOG_REG, (A5133_RFConfigTab_Main[0x35]&0x0F) | page<<4);\r
+ RF_WriteReg(addr, wbyte);\r
+}\r
+\r
+\r
+/*********************************************************************\r
+** RF_SetCH\r
+*********************************************************************/\r
+void RF_SetCH(Uint8 ch)\r
+{\r
+ RF_WriteReg(PLL1_REG, ch); //RF freq = RFbase + (CH_Step * ch)\r
+}\r
+\r
+/*********************************************************************\r
+** initRF\r
+*********************************************************************/\r
+Uint8 RF_Init(void)\r
+{\r
+ Uint8 i,id[8];\r
+\r
+ // /* init io pin */\r
+ // SCS = 1;\r
+ // SCK = 0;\r
+ // SDIO = 1;\r
+ // // CKO = 1;\r
+ // GIO1 = 1;\r
+ // // GIO2 = 1;\r
+\r
+ RF_Reset();/* reset RF chip */\r
+ RF_WriteID(ID_Tab);/* write ID code */\r
+ RF_ReadID(id);\r
+ for (i=0; i<8; i++)\r
+ {\r
+ if (id[i] ^ ID_Tab[i])\r
+ return 1;/* fail */\r
+ }\r
+ \r
+ RF_Config();/* config A7157 chip */\r
+ RF_TrimmedValue_Init();/* load trimming value */\r
+ if(RF_Cal())/* rf calibration */\r
+ return 1;\r
+\r
+ return 0;\r
+}\r
+\r
+/*********************************************************************\r
+** RF_FIFOWrite\r
+*********************************************************************/\r
+void RF_FIFOWrite(Uint8 len)\r
+{\r
+ Uint8 i;\r
+\r
+ RF_StrobeCmd(CMD_TFR);//TX fifo pointer reset\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(FIFO_REG);//send address 0x05, bit7 cmd=0, bit6 r/w=0\r
+ for(i=0; i <len; i++)\r
+ ByteSend(PN9_Tab[i]);\r
+ a5133_gpio_scs_set_value(1);\r
+}\r
+\r
+/*********************************************************************\r
+** RF_StrobeCmd\r
+*********************************************************************/\r
+void RF_StrobeCmd(Uint8 cmd)\r
+{\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(cmd);\r
+ a5133_gpio_scs_set_value(1);\r
+}\r
+\r
+/*********************************************************************\r
+** RxPacket\r
+*********************************************************************/\r
+void RxPacket(void)\r
+{\r
+ Uint8 i,recv,tmp,err;\r
+\r
+ RxCnt++;\r
+ err=0;\r
+\r
+ RF_StrobeCmd(CMD_RFR);//RX fifo pointer reset\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(FIFO_REG | 0x40);//address 0x05, bit7 cmd=0, bit6 r/w=1\r
+ for(i=0; i <64; i++)\r
+ {\r
+ recv = ByteRead();\r
+ tmpbuf[i]=recv;\r
+ if((recv ^ PN9_Tab[i])!=0)\r
+ {\r
+ tmp = recv ^ PN9_Tab[i];\r
+ Err_BitCnt += (BitCount_Tab[tmp>>4] + BitCount_Tab[tmp & 0x0F]);\r
+ err=1;\r
+ }\r
+ }\r
+ a5133_gpio_scs_set_value(1);\r
+\r
+ if (err)//packet error\r
+ Err_Frame++;\r
+}\r
+\r
+/*********************************************************************\r
+** RF_Cal_CHGroup\r
+*********************************************************************/\r
+Uint8 RF_Cal_CHGroup(Uint8 ch)\r
+{\r
+ Uint8 tmp;\r
+ Uint8 vb,vbcf,vcb,vccf;\r
+ Uint8 deva,adev;\r
+\r
+ RF_WriteReg(PLL1_REG, ch);\r
+ RF_WriteReg(CALIBRATION_REG, 0x1C);\r
+ do{\r
+ tmp = RF_ReadReg(CALIBRATION_REG)&0x1C;\r
+ }while (tmp);\r
+\r
+ //for check\r
+ tmp = RF_ReadReg(VCOCCAL_REG);\r
+ vcb = tmp & 0x0F;\r
+ vccf = (tmp>>4) & 0x01;\r
+\r
+ tmp = RF_ReadReg(VCOCAL1_REG);\r
+ vb = tmp & 0x0F;\r
+ vbcf = (tmp >>4) & 0x01;\r
+\r
+ tmp = RF_ReadReg(VCODEVCAL1_REG);\r
+ deva = tmp;\r
+\r
+ tmp = RF_ReadReg(VCODEVCAL2_REG);\r
+ adev = tmp;\r
+\r
+ if(vbcf)\r
+ return 1;//error \r
+\r
+ return 0;\r
+}\r
+\r
+/*********************************************************************\r
+** calibration\r
+*********************************************************************/\r
+Uint8 RF_Cal(void)\r
+{\r
+ Uint8 tmp;\r
+ Uint8 rhc,rlc,fb,fbcf,fcd;\r
+\r
+ RF_StrobeCmd(CMD_PLL); //calibration @PLL state\r
+ RF_WriteReg(RFANALOG_REG, 0);\r
+\r
+ //IF,RSSI,RC procedure\r
+ RF_WriteReg(CALIBRATION_REG, 0x23);\r
+ do{\r
+ tmp = RF_ReadReg(CALIBRATION_REG)&0x23;\r
+ }while(tmp); \r
+\r
+ //calibration VBC,VDC procedure\r
+ if(RF_Cal_CHGroup(20)) //calibrate channel group Bank I\r
+ return 1;\r
+ if(RF_Cal_CHGroup(60)) //calibrate channel group Bank II\r
+ return 1;\r
+ if(RF_Cal_CHGroup(100)) //calibrate channel group Bank III\r
+ return 1;\r
+\r
+ RF_StrobeCmd(CMD_STBY); //return to STBY state\r
+\r
+ //for check\r
+ tmp = RF_ReadReg(IFCAL1_REG);\r
+ fb = tmp & 0x0F;\r
+ fbcf = (tmp>>4) & 0x01;\r
+\r
+ tmp = RF_ReadReg(IFCAL2_REG);\r
+ fcd = tmp & 0x1F;\r
+\r
+ rhc = RF_ReadReg(RXGAIN2_REG);\r
+ rlc = RF_ReadReg(RXGAIN3_REG);\r
+ Mem_RH = rhc;\r
+ Mem_RL = rlc;\r
+\r
+ if(fbcf)\r
+ return 1;//error\r
+\r
+ return 0;\r
+}\r
+\r
+/*********************************************************************\r
+** RF_Config\r
+*********************************************************************/\r
+void RF_Config(void)\r
+{\r
+ Uint8 i;\r
+\r
+ //0x00 mode register, for reset\r
+ //0x05 fifo data register\r
+ //0x06 id code register\r
+ //0x36 key data, 16 bytes\r
+ //0x3D FCB register,4 bytes\r
+ //0x3F USID register, read only\r
+\r
+ for (i=0x01; i<=0x04; i++)\r
+ RF_WriteReg(i, A5133_RFConfigTab_Main[i]);\r
+\r
+ for (i=0x07; i<=0x1F; i++)\r
+ RF_WriteReg(i, A5133_RFConfigTab_Main[i]);\r
+\r
+ for (i=0; i<=12; i++)//0x20 code1\r
+ RF_WritePage(0x20, A5133_RFConfigTab_Addr0x20[i], i);\r
+\r
+ for (i=0; i<=12; i++)//0x21 code2\r
+ RF_WritePage(0x21, A5133_RFConfigTab_Addr0x21[i], i);\r
+\r
+ for (i=0; i<=5; i++)//0x22 code3\r
+ RF_WritePage(0x22, A5133_RFConfigTab_Addr0x22[i], i);\r
+\r
+ for (i=0x23; i<=0x29; i++)\r
+ RF_WriteReg(i, A5133_RFConfigTab_Main[i]);\r
+\r
+ for (i=0; i<=12; i++)//0x2A DAS\r
+ RF_WritePage(0x2A, A5133_RFConfigTab_Addr0x2A[i], i);\r
+\r
+ for (i=0x2B; i<=0x35; i++)\r
+ RF_WriteReg(i, A5133_RFConfigTab_Main[i]);\r
+\r
+ RF_WriteReg(0x37, A5133_RFConfigTab_Main[0x37]);\r
+\r
+ for (i=0; i<=11; i++)//0x38 ROM\r
+ RF_WritePage(0x38, A5133_RFConfigTab_Addr0x38[i], i);\r
+\r
+ for (i=0x39; i<=0x3C; i++)\r
+ RF_WriteReg(i, A5133_RFConfigTab_Main[i]);\r
+\r
+ RF_WriteReg(0x3E, A5133_RFConfigTab_Main[0x3E]);\r
+}\r
+\r
+/*********************************************************************\r
+** RF_FCB\r
+*********************************************************************/\r
+void RF_FCB(void)\r
+{\r
+ Uint8 i;\r
+\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(FCB_REG);//address 0x3D, bit7 cmd=0, bit6 r/w=0\r
+ for (i=0; i < 20; i++)\r
+ ByteSend(FCB_Tab[i]);\r
+ a5133_gpio_scs_set_value(1);\r
+}\r
+\r
+/*********************************************************************\r
+** A7157_KeyData\r
+*********************************************************************/\r
+void RF_KeyData(void)\r
+{\r
+ Uint8 i;\r
+\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(KEYDATA_REG);//address 0x36, bit7 cmd=0, bit6 r/w=0\r
+ for (i=0; i < 16; i++)\r
+ ByteSend(KeyData_Tab[i]);\r
+ a5133_gpio_scs_set_value(1);\r
+}\r
+\r
+/*********************************************************************\r
+** RF_FIFOLength\r
+*********************************************************************/\r
+void RF_FIFOLength(Uint16 len)\r
+{\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(FIFO1_REG);\r
+ ByteSend(len & 0xFF);//low byte\r
+ ByteSend(len>>8);//high byte\r
+ a5133_gpio_scs_set_value(1);\r
+}\r
+\r
+/*********************************************************************\r
+** RF_TrimmedValue_Init\r
+*********************************************************************/\r
+void RF_TrimmedValue_Init(void)\r
+{\r
+ Uint8 i;\r
+ Uint8 trimValue[8];\r
+ //Uint8 tmp_checksum;\r
+\r
+ //trimValue[0]=FBG\r
+ //trimValue[1]=CTR\r
+ //trimValue[2]=BDC\r
+ //trimValue[3]=STM\r
+ //trimValue[4]=Checksum for trimvalue[0]~trimvalue[3]\r
+ //trimValue[5]=CSXTL\r
+ //trimValue[6]=FBG_CP\r
+ //trimValue[7]=Checksum for customer\r
+\r
+ RF_WritePage(ROMP_REG, A5133_RFConfigTab_Addr0x38[9] | 0xA0, 9);//enable EFSW=1, EFRE=1\r
+ \r
+ Delay1ms(5); //wait for stability\r
+ \r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(USID_REG | 0x40);\r
+ for (i=0; i < 8; i++)\r
+ trimValue[i] = ByteRead();\r
+ a5133_gpio_scs_set_value(1);\r
+ RF_WritePage(ROMP_REG, A5133_RFConfigTab_Addr0x38[9], 9);//disable EFSW=1, EFRE=1\r
+\r
+ if((trimValue[0] + trimValue[1]) == trimValue[4]) //case1-only FT\r
+ {\r
+ if((trimValue[0]!=0) && (trimValue[1]!=0))\r
+ {\r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[1] & 0xE0) | trimValue[0], 1);//FBG\r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[2] & 0xC0) | trimValue[1], 2);//CTR \r
+ }\r
+ else\r
+ Err_State();\r
+ }\r
+ else if((trimValue[0] + trimValue[1] + trimValue[2] + trimValue[3]) == trimValue[4]) //case2-CP+FT\r
+ {\r
+ if((trimValue[0]!=0) && (trimValue[1]!=0) && (trimValue[2]!=0) && (trimValue[3]!=0)) \r
+ {\r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[1] & 0xE0) | trimValue[0], 1);//FBG\r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[2] & 0xC0) | trimValue[1], 2);//CTR \r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[0] & 0x03) | (trimValue[2]<<2), 0);//BDC\r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[4] & 0x40) | trimValue[3], 4);//STM\r
+ }\r
+ else\r
+ Err_State();\r
+ }\r
+ else //only CP\r
+ {\r
+ if((trimValue[0]==0) && (trimValue[1]!=0) && (trimValue[2]!=0) && (trimValue[3]!=0) && (trimValue[4]==0) && (trimValue[6]!=0)) \r
+ {\r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[1] & 0xE0) | trimValue[6], 1);//FBG\r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[2] & 0xC0) | trimValue[1], 2);//CTR \r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[0] & 0x03) | (trimValue[2]<<2), 0);//BDC\r
+ RF_WritePage(ROMP_REG, (A5133_RFConfigTab_Addr0x38[4] & 0x40) | trimValue[3], 4);//STM\r
+ }\r
+ else\r
+ Err_State(); \r
+ }\r
+}\r
+ \r
+/*********************************************************************\r
+** RF_RSSI_Read\r
+*********************************************************************/\r
+Sint16 RF_RSSI_Read(void)\r
+{\r
+ Uint8 rssi;\r
+ Sint16 tmp;\r
+\r
+ rssi= RF_ReadReg(RSSI_REG); //read RSSI value(wanted signal RSSI)\r
+\r
+ //RF power in(dBm) = (RSSI - RL) / (RH - RL) * 12 - 80dbm - 3\r
+ tmp = ((rssi*1.0 - Mem_RL) / (Mem_RH - Mem_RL) * 12.0) - 80 - 3; \r
+ return tmp;\r
+}\r
+\r
+/*********************************************************************\r
+** RF_PM_SleepMode\r
+*********************************************************************/\r
+void RF_PM_SleepMode(void)\r
+{\r
+ RF_StrobeCmd(CMD_SLEEP);\r
+ a5133_gpio_sck_set_value(1);\r
+ a5133_gpio_sdio_set_value(1);\r
+}\r
+\r
+/*********************************************************************\r
+** RF_Low Voltage Reset_Check\r
+*********************************************************************/\r
+Uint8 RF_LVR_Check(void)\r
+{\r
+ Uint8 tmp;\r
+\r
+ tmp = RF_ReadReg(VCOCAL2_REG);\r
+ if(tmp == 0xFF)//default reset value 0xFF\r
+ return 1;\r
+ else\r
+ return 0;\r
+}\r
+\r
+/*********************************************************************\r
+** RF_WOR_En\r
+*********************************************************************/\r
+void RF_WOR_En(void)\r
+{\r
+ RF_WriteReg(GIO1_REG, 0x01);//WTR\r
+ RF_WriteReg(GIO2_REG, 0x11);//MCU wakeup signal\r
+ RF_WriteReg(CKO_REG, 0x02); \r
+\r
+ RF_WriteReg(RCOSC1_REG, 0x0B);//WOR_SL=11, SL time=(11+1)*32*(1/4KHz)\r
+ RF_WriteReg(RCOSC2_REG, 0x0B);//WOR_AC=11, AC time(wakeup time + RX time)=(11+1)*(1/4KHz)\r
+ RF_WriteReg(RCOSC3_REG, 0x0C);//RCOSC enable\r
+\r
+ while(1)\r
+ { \r
+ RF_WriteReg(MODECTRL_REG, A5133_RFConfigTab_Main[1] | (1<<3)); //WOR enable\r
+ // while(~GIO2);//waitting to wakeup until packet is received \r
+ \r
+ RF_StrobeCmd(CMD_PLL);\r
+ //Wakeup process...\r
+ //RxPacket();\r
+ //...;\r
+ }\r
+}\r
+\r
+/*********************************************************************\r
+** RF_AdvFIFO_Init\r
+*********************************************************************/\r
+void RF_AdvFIFO_Init(void)\r
+{\r
+ RF_WriteReg(FCR_REG, 0x0F);/* EARTS=1, EACKS=1, ARC=3, FCL=0 */\r
+ RF_WriteReg(ARD_REG, 0x02);/* ARD=2, ARD=600us */ \r
+ RF_WriteReg(AFEP_REG, 0x40);/* spss=1 */\r
+ RF_WriteReg(KEYC_REG, 0x20);/* ARTMS=1, fixed interval */\r
+ RF_WriteReg(USID_REG, 0x00);/* Random seed=0, fixed interval=200us */\r
+}\r
+\r
+/*********************************************************************\r
+** Is_Vpoak\r
+*********************************************************************/\r
+Uint8 Is_Vpoak(void)\r
+{\r
+ Uint8 tmp;\r
+ \r
+ tmp = (RF_ReadReg(FCR_REG) >>6) & 0x01;/* read vpoak bit */\r
+ return tmp;\r
+}\r
+\r
+/*********************************************************************\r
+** main_prog_ACK\r
+*********************************************************************/\r
+void main_prog_ACK(Uint8 Flag_MASTER)\r
+{\r
+ /* A sample code for auto-resend & auto-ack function */\r
+\r
+ RF_AdvFIFO_Init();/* init advance fifo with auto-resend & auto-ack */\r
+ \r
+ if (Flag_MASTER) \r
+ { \r
+ while(1)\r
+ {\r
+ RF_WriteReg(GIO1_REG,0x01);/* gio1-wtr */\r
+ RF_WriteReg(GIO2_REG,0x1D);/* gio2-trxd */\r
+ RF_WriteReg(CKO_REG,0x02);/* cko-dck */\r
+ \r
+ RF_FIFOLength(64-1);/* fifo length 64 bytes */ \r
+ RF_StrobeCmd(CMD_PLL);\r
+ RF_SetCH(80);/* ch=80, freq=5805.001MHz */\r
+ /* To set RF channel */\r
+ /* RF base Freq : 5725.001MHz */\r
+ /* Channel step : 1MHz */\r
+ /* SetCH : 80 */\r
+ /* RF Frequency = RF base Freq + (Channel step * SetCH) = 5725.001MHz + ( 1MHz * 80 ) = 5805.001MHz */\r
+ \r
+ RxCnt = 0;\r
+ Err_Loss=0;\r
+ Err_Frame=0;\r
+ Err_BitCnt = 0;\r
+ timer=0;\r
+ // TR0=1;\r
+ // EA=1; \r
+ \r
+ while(1)\r
+ { \r
+ RF_FIFOWrite(64); /* write data to tx fifo */\r
+ if(RF_LVR_Check())/* check if BOD reset has occurred */\r
+ break;/* exit loop & re-RF init */\r
+ else\r
+ RF_StrobeCmd(CMD_TX);/* transmit packet */\r
+ \r
+ Delay10us(1);\r
+ while(a5133_gpio_get_gio1_value());\r
+\r
+ /* check vpoak */\r
+ if(Is_Vpoak())\r
+ // P3 = P3 ^ 0x04;/* transmit completed, toggle I/O */\r
+ PRINT("transmit complete!\n");\r
+ else\r
+ nop();/* resend fail */\r
+ \r
+ Delay10ms(5);\r
+ }\r
+ }\r
+ }\r
+ else\r
+ { \r
+ while(1)\r
+ {\r
+ RF_WriteReg(GIO1_REG,0x01);/* gio1-wtr */\r
+ RF_WriteReg(GIO2_REG,0x1D);/* gio2-trxd */\r
+ RF_WriteReg(CKO_REG,0x02);/* cko-dck */\r
+\r
+ RF_FIFOLength(64-1);/* fifo length 64 bytes */ \r
+ RF_StrobeCmd(CMD_PLL);\r
+ RF_SetCH(80);/* ch=80, freq=5805.001MHz */\r
+ \r
+ RxCnt = 0;\r
+ Err_Loss=0;\r
+ Err_Frame=0;\r
+ Err_BitCnt = 0;\r
+ timer=0;\r
+ // TR0=1;\r
+ // EA=1;\r
+\r
+ while(1)\r
+ {\r
+ if(RF_LVR_Check())/* check if BOD reset has occurred */\r
+ break;/* exit loop & re-RF init */\r
+ else\r
+ RF_StrobeCmd(CMD_RX);\r
+ \r
+ Delay10us(1);\r
+ while(a5133_gpio_get_gio1_value());\r
+ \r
+ /* check vpoak */\r
+ if(Is_Vpoak())\r
+ {\r
+ // P3 = P3 ^ 0x04;/* valid packet, toggle I/O */\r
+ PRINT("valid packet !\n");\r
+ RxPacket();\r
+ }\r
+ else\r
+ nop();/* invalid packet */\r
+\r
+ Delay10ms(4);\r
+ }\r
+ }\r
+ }\r
+}\r
+\r
+/*********************************************************************\r
+** RF_TXPower\r
+*********************************************************************/\r
+void RF_TXPower(Uint8 tbf, Uint8 tpa)\r
+{\r
+ /*\r
+ * Users can get different TX power by setting TBF(in register 0x2D), TPA(in register 0x2D, page 8) under fixed conditions,\r
+ * a)Fixed bit TXLPN=1(in register 0x22, page1)\r
+ * b)Fixed bit PGV_PA=2.5V(in register 0x21, page9)\r
+ * For tbf,tpa setting, please refer to chapter "3.Tx Power Control Setting" in Application Note_AN_A5133_HW pdf\r
+ */\r
+ \r
+ Uint8 tmp;\r
+ \r
+ tmp = A5133_RFConfigTab_Main[TXTEST_REG] & 0xF8;\r
+ tmp = tmp | (tbf & 0x07);\r
+ RF_WriteReg(TXTEST_REG, tmp);//set TBF\r
+ \r
+ tmp = A5133_RFConfigTab_Addr0x21[8] & 0x8F;\r
+ tmp = tmp | (tpa & 0x07)<<4;\r
+ RF_WritePage(CODE2_REG, tmp, 8);//set TPA\r
+}\r
--- /dev/null
+/******************************************************************** **\r
+* Uti.h\r
+* Function Definitions\r
+*\r
+********************************************************************/\r
+\r
+#include "gpio.h"\r
+#include "pinctrl_porting.h"\r
+#include "chip_io.h"\r
+#include "debug_print.h"\r
+#include "pinctrl.h"\r
+\r
+#include "A5133define.h"\r
+#include "A5133Uti.h"\r
+\r
+static void nop(void){}\r
+\r
+/**********************************************************\r
+* Delay1ms\r
+**********************************************************/\r
+void Delay1ms(Uint8 n)\r
+{\r
+ LOS_Mdelay(n);\r
+}\r
+\r
+/**********************************************************\r
+* Delay10ms\r
+**********************************************************/\r
+void Delay10ms(Uint8 n)\r
+{\r
+ LOS_Mdelay(n*10);\r
+}\r
+\r
+/**********************************************************\r
+* Delay100us\r
+**********************************************************/\r
+void Delay100us(Uint8 n)\r
+{\r
+ LOS_Udelay(n*100);\r
+}\r
+\r
+/**********************************************************\r
+* Delay10us\r
+**********************************************************/\r
+void Delay10us(Uint8 n)\r
+{\r
+ LOS_Udelay(n*10);\r
+}\r
+\r
+\r
+/**direction 1 out , 0 in*/\r
+errcode_t a5133_gpio_set_direction(pin_t pin, int direction)\r
+{\r
+ errcode_t ret = ERRCODE_SUCC;\r
+\r
+ if (direction)\r
+ {\r
+ ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_OUTPUT);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ }else{\r
+ ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_INPUT);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ }\r
+\r
+ return ret;\r
+}\r
+\r
+\r
+errcode_t a5133_gpio_set_value(pin_t pin,uint8_t value)\r
+{\r
+ errcode_t ret = ERRCODE_SUCC;\r
+ if (value == 1) {\r
+ ret = uapi_gpio_set_val(pin, GPIO_LEVEL_HIGH);\r
+ } else if (value == 0) {\r
+ ret = uapi_gpio_set_val(pin, GPIO_LEVEL_LOW);\r
+ } else {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ return ret;\r
+}\r
+\r
+uint8_t a5133_gpio_get_value(pin_t pin)\r
+{\r
+ gpio_level_t gpio_level;\r
+ gpio_level = uapi_gpio_get_val(pin);\r
+ if (gpio_level == GPIO_LEVEL_HIGH) {\r
+ // PRINT("read level is %d\r\n", GPIO_LEVEL_HIGH);\r
+ } else {\r
+ // PRINT("read level is %d\r\n", GPIO_LEVEL_LOW);\r
+ }\r
+ return gpio_level;\r
+}\r
+\r
+#define SCS_OUT S_MGPIO9 //spi SCS\r
+#define SCK_OUT S_MGPIO8 //spi SCK\r
+#define SDIO_IN_OUT S_MGPIO7 //spi SDIO\r
+#define GIO1_IN S_MGPIO6 //GPIO1\r
+\r
+uint8_t a5133_gpio_get_gio1_value(void)\r
+{\r
+ return a5133_gpio_get_value(GIO1_IN);\r
+}\r
+\r
+errcode_t a5133_gpio_scs_set_value(uint8_t value)\r
+{\r
+ if(value)\r
+ return a5133_gpio_set_value(SCS_OUT,1);\r
+ else\r
+ return a5133_gpio_set_value(SCS_OUT,0);\r
+}\r
+\r
+errcode_t a5133_gpio_sdio_set_value(uint8_t value)\r
+{\r
+ if(value)\r
+ return a5133_gpio_set_value(SDIO_IN_OUT,1);\r
+ else\r
+ return a5133_gpio_set_value(SDIO_IN_OUT,0);\r
+}\r
+errcode_t a5133_gpio_sck_set_value(uint8_t value)\r
+{\r
+ if(value)\r
+ return a5133_gpio_set_value(SCK_OUT,1);\r
+ else\r
+ return a5133_gpio_set_value(SCK_OUT,0);\r
+}\r
+errcode_t a5133_gpio_init(void)\r
+{\r
+\r
+ errcode_t ret = ERRCODE_SUCC;\r
+ \r
+ ret = uapi_pin_set_mode(SCS_OUT, HAL_PIO_FUNC_GPIO);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ ret = uapi_pin_set_mode(SCK_OUT, HAL_PIO_FUNC_GPIO);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ ret = uapi_pin_set_mode(SDIO_IN_OUT, HAL_PIO_FUNC_GPIO);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ ret = uapi_pin_set_mode(GIO1_IN, HAL_PIO_FUNC_GPIO);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ ret = a5133_gpio_set_direction(SCS_OUT,1);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+\r
+ ret = a5133_gpio_set_direction(SCK_OUT,1);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ ret = a5133_gpio_set_direction(SDIO_IN_OUT,1);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ ret = a5133_gpio_set_direction(GIO1_IN,0);\r
+ if (ret != ERRCODE_SUCC) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ return ret;\r
+}\r
+\r
+\r
+// int test_gpio_toggle(pin_t pin, int level)\r
+// {\r
+ \r
+// errcode_t ret = ERRCODE_SUCC;\r
+\r
+// PRINT("[Params] PIN:%d, levle: %d. \r\n", pin, (uint32_t)level);\r
+// ret = uapi_pin_set_mode(pin, HAL_PIO_FUNC_GPIO);\r
+// if (ret != ERRCODE_SUCC) {\r
+// return ERRCODE_FAIL;\r
+// }\r
+\r
+// ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_OUTPUT);\r
+// if (ret != ERRCODE_SUCC) {\r
+// return ERRCODE_FAIL;\r
+// }\r
+\r
+// if (level == 1) {\r
+// uapi_gpio_set_val(pin, GPIO_LEVEL_HIGH);\r
+// } else if (level == 0) {\r
+// uapi_gpio_set_val(pin, GPIO_LEVEL_LOW);\r
+// } else {\r
+// return ERRCODE_FAIL;\r
+// }\r
+\r
+// ret = uapi_gpio_toggle(pin);\r
+// if (ret != ERRCODE_SUCC) {\r
+// return ERRCODE_FAIL;\r
+// }\r
+\r
+// gpio_level_t gpio_level;\r
+// gpio_level = uapi_gpio_get_val(pin);\r
+// if (gpio_level != (gpio_level_t)level) {\r
+// PRINT("gpio toggle success\r\n");\r
+// PRINT("read level is %d\r\n", gpio_level);\r
+// } else {\r
+// PRINT("gpio toggle failed\r\n");\r
+// PRINT("read level is %d\r\n", gpio_level);\r
+// return ERRCODE_FAIL;\r
+// }\r
+\r
+// return ERRCODE_SUCC;\r
+// }\r
+\r
+\r
+\r
+/************************************************************************\r
+** RF_WriteReg\r
+************************************************************************/\r
+void RF_WriteReg(Uint8 addr, Uint8 dataByte)\r
+{\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(addr);//bit7 cmd=0, bit6 r/w=0\r
+ ByteSend(dataByte);\r
+ a5133_gpio_scs_set_value(1);\r
+}\r
+\r
+/************************************************************************\r
+** RF_ReadReg\r
+************************************************************************/\r
+Uint8 RF_ReadReg(Uint8 addr)\r
+{\r
+ Uint8 tmp;\r
+\r
+ a5133_gpio_scs_set_value(0);\r
+ ByteSend(addr | 0x40);//bit7 cmd=0,bit6 r/w=1\r
+ tmp = ByteRead();\r
+ a5133_gpio_scs_set_value(1);\r
+\r
+ return tmp;\r
+}\r
+\r
+/************************************************************************\r
+** ByteSend\r
+************************************************************************/\r
+void ByteSend(Uint8 src)\r
+{\r
+ Uint8 i;\r
+\r
+ for(i = 0; i < 8; i++)\r
+ {\r
+ if(src & 0x80)\r
+ a5133_gpio_set_value(SDIO_IN_OUT,1);\r
+ else\r
+ a5133_gpio_set_value(SDIO_IN_OUT,0); \r
+\r
+ nop();\r
+ a5133_gpio_set_value(SCK_OUT,1);\r
+ nop();\r
+ a5133_gpio_set_value(SCK_OUT,0);\r
+ src = src << 1;\r
+ }\r
+}\r
+\r
+/************************************************************************\r
+** ByteRead\r
+************************************************************************/\r
+Uint8 ByteRead(void)\r
+{\r
+ Uint8 i,tmp;\r
+\r
+ //sdio pull high\r
+ a5133_gpio_sdio_set_value(1); \r
+ // P0OE = P0OE & (~0x02);\r
+\r
+ a5133_gpio_set_direction(SDIO_IN_OUT,0);\r
+ for(i = 0; i < 8; i++)\r
+ {\r
+ if(a5133_gpio_get_value(SDIO_IN_OUT))\r
+ tmp = (tmp << 1) | 0x01;\r
+ else\r
+ tmp = tmp << 1;\r
+\r
+ a5133_gpio_sck_set_value(1); \r
+ nop();\r
+ a5133_gpio_sck_set_value(0); \r
+ }\r
+ a5133_gpio_set_direction(SDIO_IN_OUT,1);\r
+ // P0OE = P0OE | (0x02);\r
+ return tmp;\r
+}
\ No newline at end of file
--- /dev/null
+/********************************************************************\r
+* UTI.h\r
+* Function Definitions\r
+*\r
+********************************************************************/\r
+#ifndef _A5133_UTI_H_\r
+#define _A5133_UTI_H_\r
+\r
+/********************************************************************\r
+** function declaration\r
+********************************************************************/\r
+#include "errcode.h"\r
+#include "platform_core.h"\r
+void Delay10us(Uint8);\r
+void Delay100us(Uint8);\r
+void Delay1ms(Uint8);\r
+void Delay10ms(Uint8);\r
+errcode_t a5133_gpio_init(void);\r
+uint8_t a5133_gpio_get_value(pin_t pin);\r
+errcode_t a5133_gpio_set_value(pin_t pin,uint8_t value);\r
+errcode_t a5133_gpio_set_direction(pin_t pin, int direction);\r
+errcode_t a5133_gpio_scs_set_value(uint8_t value);\r
+errcode_t a5133_gpio_sdio_set_value(uint8_t value);\r
+errcode_t a5133_gpio_sck_set_value(uint8_t value);\r
+uint8_t a5133_gpio_get_gio1_value(void);\r
+void ByteSend(Uint8 src);\r
+Uint8 ByteRead(void);\r
+\r
+#endif\r
--- /dev/null
+/*****************************************************************************\r
+** **\r
+** AMIC Proprietary Document **\r
+** Copyright (c) 2004-2008 AMIC Technology Inc. **\r
+** **\r
+** No.2, Li-Hsin 6th Road, Science_Based Industrid Park, **\r
+** Hsin_Chu City, 300, Taiwan, ROC. **\r
+** Tel: 886-3-5679966 Fax: 886-3-5679977 **\r
+** E-mail:info@amic.com.tw http: //www.amic.com.tw **\r
+** **\r
+*****************************************************************************/\r
+#ifndef _A5133_DEFINE_H_\r
+#define _A5133_DEFINE_H_\r
+\r
+#include <stdio.h>\r
+#include <string.h>\r
+// #include <intrins.h>\r
+#include <stdint.h>\r
+#define data\r
+\r
+#define Sint8 signed char\r
+#define Sint16 signed int\r
+#define Uint8 unsigned char\r
+#define Uint16 unsigned int\r
+#define Uint32 unsigned long\r
+\r
+#define NO 0\r
+#define YES 1\r
+\r
+#define LOW 0\r
+#define HIGH 1\r
+\r
+#ifndef ON\r
+#define ON 1\r
+#define OFF 0\r
+#endif\r
+\r
+\r
+#define ENABLE 1\r
+#define DISABLE 0\r
+\r
+#define MASTER 1\r
+#define SLAVE 0\r
+\r
+#define ONEWAY 0\r
+#define TWOWAY 1\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef _A5133_MAIN_H_\r
+#define _A5133_MAIN_H_\r
+\r
+#include <stdio.h>\r
+#include "A5133define.h"\r
+\r
+/*********************************************************************\r
+** I/O Declaration\r
+*********************************************************************/\r
+// #define SCS //P0_3 //spi SCS\r
+// #define SCK //P0_0 //spi SCK\r
+// #define SDIO //P0_1 //spi SDIO\r
+// #define CKO //P1_3 //CKO\r
+// #define GIO1 //P0_2 //GPIO1\r
+// #define GIO2 //P1_2 //GPIO2\r
+// #define Button //P3_2 //test Button\r
+\r
+/*********************************************************************\r
+** Constant Declaration\r
+*********************************************************************/\r
+#define TIMEOUT 50\r
+#define t0hrel 1333//1000\r
+#define BaudRate38400 (65536-((16000000)/(32*38400))) \r
+\r
+\r
+\r
+\r
+/*********************************************************************\r
+** function Declaration\r
+*********************************************************************/\r
+\r
+void ISR_Timer0 (void);\r
+void Clr_timer(void);\r
+\r
+void Err_State(void);\r
+void RF_Reset(void);\r
+void RF_WriteID(Uint8* ptr);\r
+void RF_ReadID(Uint8* ptr);\r
+Uint8 RF_ReadPage(Uint8 addr, Uint8 page);\r
+void RF_WritePage(Uint8 addr, Uint8 wbyte, Uint8 page);\r
+void RF_WriteReg(Uint8, Uint8);\r
+Uint8 RF_ReadReg(Uint8);\r
+void ByteSend(Uint8 src);\r
+Uint8 ByteRead(void);\r
+void RF_SetCH(Uint8);\r
+Uint8 RF_Init(void);\r
+void RF_FIFOWrite(Uint8);\r
+void RF_StrobeCmd(Uint8);\r
+void RxPacket(void);\r
+Uint8 RF_Cal_CHGroup(Uint8 ch);\r
+Uint8 RF_Cal(void);\r
+void RF_Config(void);\r
+void RF_FCB(void);\r
+void RF_KeyData(void);\r
+void RF_FIFOLength(Uint16 len);\r
+void RF_TrimmedValue_Init(void);\r
+Sint16 RF_RSSI_Read(void);\r
+void RF_PM_SleepMode(void);\r
+Uint8 RF_LVR_Check(void);\r
+void RF_WOR_En(void);\r
+void RF_AdvFIFO_Init(void);\r
+Uint8 Is_Vpoak(void);\r
+void main_prog_ACK(Uint8 Flag_MASTER);\r
+void RF_TXPower(Uint8 tbf, Uint8 tpa);\r
+void a5133_main(Uint8 Flag_MASTER);\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+/********************************************************************\r
+* A5133REG.h\r
+* RF Chip-A5133 Hardware Definitions\r
+*\r
+* This file provides the constants associated with the\r
+* AMICCOM A5133 device.\r
+*\r
+********************************************************************/\r
+#ifndef _A5133REG_h_\r
+#define _A5133REG_h_\r
+\r
+#define MODE_REG 0x00\r
+#define MODECTRL_REG 0x01\r
+#define CALIBRATION_REG 0x02\r
+#define FIFO1_REG 0x03\r
+#define FIFO2_REG 0x04\r
+#define FIFO_REG 0x05\r
+#define IDCODE_REG 0x06\r
+#define RCOSC1_REG 0x07\r
+#define RCOSC2_REG 0x08\r
+#define RCOSC3_REG 0x09\r
+#define CKO_REG 0x0A\r
+#define GIO1_REG 0x0B\r
+#define GIO2_REG 0x0C\r
+#define DATARATE_REG 0x0D\r
+#define PLL1_REG 0x0E\r
+#define PLL2_REG 0x0F\r
+#define PLL3_REG 0x10\r
+#define PLL4_REG 0x11\r
+#define PLL5_REG 0x12\r
+#define CHGROUP1_REG 0x13\r
+#define CHGROUP2_REG 0x14\r
+#define TX1_REG 0x15\r
+#define TX2_REG 0x16\r
+#define DELAY1_REG 0x17\r
+#define DELAY2_REG 0x18\r
+#define RX_REG 0x19\r
+#define RXGAIN1_REG 0x1A\r
+#define RXGAIN2_REG 0x1B\r
+#define RXGAIN3_REG 0x1C\r
+#define RXGAIN4_REG 0x1D\r
+#define RSSI_REG 0x1E\r
+#define ADC_REG 0x1F\r
+#define CODE1_REG 0x20\r
+#define CODE2_REG 0x21\r
+#define CODE3_REG 0x22\r
+#define IFCAL1_REG 0x23\r
+#define IFCAL2_REG 0x24\r
+#define VCOCCAL_REG 0x25\r
+#define VCOCAL1_REG 0x26\r
+#define VCOCAL2_REG 0x27\r
+#define VCODEVCAL1_REG 0x28\r
+#define VCODEVCAL2_REG 0x29\r
+#define DASP_REG 0x2A\r
+#define VCOMODDELAY_REG 0x2B\r
+#define BATTERY_REG 0x2C\r
+#define TXTEST_REG 0x2D\r
+#define RXDEM1_REG 0x2E\r
+#define RXDEM2_REG 0x2F\r
+#define CPC1_REG 0x30\r
+#define CPC2_REG 0x31\r
+#define CRYSTALTEST_REG 0x32\r
+#define PLLTEST_REG 0x33\r
+#define VCOTEST_REG 0x34\r
+#define RFANALOG_REG 0x35\r
+#define KEYDATA_REG 0x36\r
+#define CHSELECT_REG 0x37\r
+#define ROMP_REG 0x38\r
+#define DATARATECLOCK 0x39\r
+#define FCR_REG 0x3A\r
+#define ARD_REG 0x3B\r
+#define AFEP_REG 0x3C\r
+#define FCB_REG 0x3D\r
+#define KEYC_REG 0x3E\r
+#define USID_REG 0x3F\r
+\r
+//strobe command\r
+#define CMD_SLEEP 0x80 //1000,xxxx SLEEP mode\r
+#define CMD_IDLE 0x90 //1001,xxxx IDLE mode\r
+#define CMD_STBY 0xA0 //1010,xxxx Standby mode\r
+#define CMD_PLL 0xB0 //1011,xxxx PLL mode\r
+#define CMD_RX 0xC0 //1100,xxxx RX mode\r
+#define CMD_TX 0xD0 //1101,xxxx TX mode\r
+#define CMD_TFR 0xE0 //1110,xxxx TX FIFO reset\r
+#define CMD_RFR 0xF0 //1111,xxxx RX FIFO reset\r
+#define CMD_DPSLEEP_TRI 0x88 //1000,1000 deep sleep tri mode\r
+#define CMD_DPSLEEP_PULL 0x8B //1000,1011 deep sleep Pull high mode\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+#===============================================================================
+# @brief cmake file
+# Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved.
+#===============================================================================
+add_subdirectory_if_exist(service)
+set(COMPONENT_NAME "driver_a5133")
+
+
+set(SOURCES ${SOURCES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/A5133Main.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/A5133Uti.c
+)
+set(PUBLIC_HEADER
+ ${CMAKE_CURRENT_SOURCE_DIR}
+)
+set(PUBLIC_DEFINES
+)
+set(PRIVATE_HEADER
+ # ${CMAKE_CURRENT_SOURCE_DIR}
+)
+set(PRIVATE_DEFINES
+)
+# use this when you want to add ccflags like -include xxx
+set(COMPONENT_PUBLIC_CCFLAGS
+)
+
+
+set(COMPONENT_CCFLAGS
+ -Wno-incompatible-function-pointer-types
+ -Wno-unused-function
+)
+
+set(WHOLE_LINK
+ true
+)
+
+set(MAIN_COMPONENT
+ false
+)
+
+build_component()
+
+install_sdk(${CMAKE_CURRENT_SOURCE_DIR} "*")
--- /dev/null
+#===============================================================================
+# @brief cmake file
+# Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved.
+#===============================================================================
+
+set(COMPONENT_NAME "a5133_service")
+
+set(PUBLIC_HEADER
+)
+set(PRIVATE_HEADER
+ ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/innerkits
+ ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits
+ ${ROOT_DIR}/application/wearable/nativeapp/nativeui/heartrate/include
+)
+
+set(SOURCES
+# ${CMAKE_CURRENT_SOURCE_DIR}/a5133_at_cmd.cpp
+${CMAKE_CURRENT_SOURCE_DIR}/a5133_service.cpp
+)
+
+set(COMPONENT_PUBLIC_CCFLAGS
+)
+
+set(COMPONENT_CCFLAGS
+ -std=c++11
+ -Wno-error
+ -Wno-unused-parameter
+ -fno-exceptions
+ -fno-unwind-tables
+ -fno-asynchronous-unwind-tables
+ -Wno-undef
+ -Wno-bitwise-op-parentheses
+ -Wno-shift-op-parentheses
+ -nostdlibinc
+ -nostdinc
+ -nostdlib
+ -Wno-c++11-narrowing
+ -Wno-error=unused-function
+)
+
+set(WHOLE_LINK
+ true
+)
+
+set(MAIN_COMPONENT
+ false
+)
+
+set(PUBLIC_DEFINES
+)
+
+set(PRIVATE_DEFINES
+)
+
+build_component()
--- /dev/null
+/**
+ * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n
+ *
+ * Description: Test source \n
+ * Author: @CompanyNameTag \n
+ * History: \n
+ * 2022-08-16, Create file. \n
+ */
+
+#include "wearable_log.h"
+#include "securec.h"
+#include "broadcast_service.h"
+#include "broadcast_feature.h"
+#include "service_id_define.h"
+#include "samgr_lite.h"
+#include "thread_adapter.h"
+#include "graphic_service.h"
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+
+#include "pinctrl.h"
+#include "debug_print.h"
+#include "soc_osal.h"
+#include "tcxo.h"
+#include "irmalloc.h"
+#include "errcode.h"
+#include "common_def.h"
+
+#include "chip_core_irq.h"
+#include "chip_io.h"
+#include "gpio.h"
+#include "pm_veto.h"
+
+#include "rtc.h"
+#include "timer.h"
+#include "systick.h"
+#include "cmsis_os2.h"
+#include "los_printf.h"
+#include "custom_utils.h"
+#include "a5133_service.h"
+#include "A5133define.h"
+#include "A5133main.h"
+#include "A5133Uti.h"
+static bool g_a5133_service_initialled = false;
+
+/***
+ * 其他cmd在Header里定义,对外开放
+*/
+
+
+#define A5133_SERVICE_MSG_COUNT 16
+#define A5133_SERVICE_TASK_SIZE 0x1000
+
+static unsigned long g_app_queue;
+
+static bool a5133_service_running_stat = false;
+static bool a5133_sensor_exist = false;
+
+
+static bool g_a5133_timer_is_running = false;
+osTimerId_t g_a5133_service_timer = NULL;
+static void a5133_service_check_timer_callback(void* data);
+
+static void acc_service_timer_start_check(uint32_t rtc_ms)
+{
+
+ if (g_a5133_timer_is_running ) osTimerStop(g_a5133_service_timer);
+ if (a5133_service_running_stat == true) osTimerStart(g_a5133_service_timer, rtc_ms);
+ g_a5133_timer_is_running = true;
+
+}
+static void a5133_timer_init(void)
+{
+ g_a5133_service_timer = osTimerNew((osTimerFunc_t)a5133_service_check_timer_callback, osTimerPeriodic, NULL, NULL);
+}
+
+void uapi_a5133_service_deinit(void)
+{
+ a5133_service_running_stat = false;
+}
+
+uint32_t a5133_suspend(void)
+{
+ return 0;
+}
+uint32_t a5133_resume(void)
+{
+ return 0;
+}
+
+static uint8_t a5133_server_working_mode = SLAVE ;
+static uint8_t a5133_server_break_flag = 0;
+void send_a5133_cmd_msg(int cmd)
+{
+ int ret;
+ if (a5133_sensor_exist == false)
+ return ;
+
+ A5133_CMD_TYPE_T mail = 0;
+ mail = cmd;
+ ret = osal_msg_queue_write_copy(g_app_queue, (void *)&mail,
+ sizeof(A5133_CMD_TYPE_T), 0);
+ if (ret != OSAL_SUCCESS) {
+ PRINT_ERR("Error mag Check MSG 0x%02X send failed! err=0x%x! \r\n",cmd, ret);
+ }
+
+}
+
+static void a5133_service_check_task(void *arg)
+{
+ unused(arg);
+ int32_t ret;
+ uint32_t mail;
+ uint32_t msgsize = (uint32_t)sizeof(A5133_CMD_TYPE_T);
+ a5133_service_running_stat = true;
+
+ a5133_gpio_init();
+ PRINT("a5133_service_check_task !\r\n");
+
+ while (1) {
+ ret = osal_msg_queue_read_copy(g_app_queue, (void *)&mail, &msgsize,
+ OSAL_MSGQ_WAIT_FOREVER);
+ if (ret != OSAL_SUCCESS) {
+ continue;
+ }
+
+ if (mail == A5133_SERVICE_CMD_TYPE_RUN_MASTER)
+ {
+ a5133_main(MASTER);
+ }else if (mail == A5133_SERVICE_CMD_TYPE_RUN_SLAVE)
+ {
+ a5133_main(SLAVE);
+ }
+ }
+ a5133_server_break_flag = 0;
+ a5133_service_running_stat = false;
+}
+void create_a5133_queue(void)
+{
+ if (osal_msg_queue_create("a5133_service_queue", A5133_SERVICE_MSG_COUNT, &g_app_queue,
+ 0, sizeof(A5133_CMD_TYPE_T)) != ERRCODE_SUCC) {
+ PRINT_ERR("[ppg][service] app create mail fail\n");
+ }
+}
+errcode_t uapi_a5133_service_init(void)
+{
+
+
+ PRINT("uapi_a5133_service_init !\r\n");
+
+ app_task_definition_t taskcfg={0};
+ taskcfg.create_queue_handle = create_a5133_queue;
+ taskcfg.attr.name="a5133_service";
+ taskcfg.attr.priority = osPriorityBelowNormal1;
+ taskcfg.attr.stack_size = A5133_SERVICE_TASK_SIZE;
+ taskcfg.func = a5133_service_check_task;
+ taskcfg.use_mem = USE_EXTEND_MEM;
+
+ errcode_t ret=uapi_create_osThread_custom(&taskcfg);
+ if(ret != ERRCODE_SUCC)
+ {
+ PRINT("create a5133_service failed %d!\r\n",ret);
+ return ERRCODE_FAIL;
+ }
+
+ return ERRCODE_SUCC;
+}
+
+
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __cplusplus */
--- /dev/null
+/*
+ * @Author: penglei 1624952103@qq.com
+ * @Date: 2024-03-27 09:07:00
+ * @LastEditors: SnickerSun snickersun@163.com
+ * @LastEditTime: 2024-07-20 08:16:02
+ * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/service/a5133_service.h
+ * @Description:
+ *
+ * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
+ */
+/**
+ * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n
+ *
+ * Description: Test adc header \n
+ * Author: @CompanyNameTag \n
+ * History: \n
+ * 2022-08-16, Create file. \n
+ */
+
+#ifndef A5133_SERVICE_H__
+#define A5133_SERVICE_H__
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+
+#include "stdint.h"
+#include "errcode.h"
+typedef uint32_t A5133_CMD_TYPE_T ;
+#define A5133_SERVICE_CMD_TYPE_RUN_MASTER 0x09
+#define A5133_SERVICE_CMD_TYPE_RUN_SLAVE 0x0A
+
+errcode_t uapi_a5133_service_init(void);
+void uapi_a5133_service_deinit(void);
+/**
+ * 测试指令 参数cmd 选项: A5133_SERVICE_CMD_START_CHECK,A5133_SERVICE_CMD_STOP_CHECK
+*/
+void send_a5133_cmd_msg(int cmd);
+
+
+
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+
+#endif
\ No newline at end of file
#include "custom_runtime.h"
#include "lwip/altcp_tls.h"
#include "ConfigModelC.h"
-
+#ifdef SUPPORT_A5133_SERVICE
+#include "service/a5133_service.h"
+#endif
#define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0]))
#define CUSTOM_UTILS_MAX_ARGC 8
#define CUSTOM_UTILS_MAX_ARGV_LEN 256
wstp_print("cywee is not active !!!\n");
return ERRCODE_SUCC;
}
+#ifdef SUPPORT_A5133_SERVICE
+static uint32_t custom_a5133_send_msg(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ UNUSED(strCommonCmd);
+
+ uint8_t argv[CUSTOM_UTILS_MAX_ARGC][CUSTOM_UTILS_MAX_ARGV_LEN] = {0};
+ uint32_t argc = 0;
+
+ int ret = ConvertCmdToParam(para, paraLen, argv, &argc);
+ if (ret != CUSTOM_UTILS_SUCCESS)
+ {
+ wstp_print("CUSTOM_UTILSTEST ATCMD Convert Command Failed\n");
+ return ERRCODE_FAIL;
+ }
+
+ if (argc != 1)
+ {
+ wstp_print("CUSTOM_UTILSTEST A5133 ATCMD Set Parameter Failed argc %d\r\n");
+ return ERRCODE_FAIL;
+ }
+ int cmd = atol((char *)argv[0]);
+ wstp_print("A5133 Service %d!!!\n",cmd);
+ send_a5133_cmd_msg(cmd);
+
+ return ERRCODE_SUCC;
+}
+#endif
+
static const at_cmd_table_t g_custom_utils_cmd[] = {
{ (char *)"AT^CUSTOM_SN", custom_utils_setsn, (char *)"123456789ABCDEF2345678" },
{(char *)"AT^GETIMEI", custom_get_imei, (char *)" "},
{(char *)"AT^GETCHIPINFO", custom_get_cywee_chip_info, (char *)" "},
{(char *)"AT^GETCYWEEACTIVE", custom_get_cywee_active_state, (char *)" "},
-
+#ifdef SUPPORT_A5133_SERVICE
+ {(char *)"AT^A5133SENDDATA", custom_a5133_send_msg, (char *)" "},
+#endif
};