uapi_cywee_service_init();\r
#endif \r
\r
-#ifdef SUPPORT_BLE_SERVICE\r
- if(start_ble_service_on_bootup_flag())\r
- {\r
- PRINT("start custom protocol classic bt ble service !\r\n");\r
- openBle();\r
-\r
- }\r
-#endif \r
-\r
#ifdef SUPPORT_ALIPAY_SEC\r
uapi_alipay_svr_init();\r
#endif\r
return CSI_ERROR;
}
+#if 1
bd_addr_t addr_info;
gap_ble_get_local_addr(&addr_info);
char str[18] = {0};
#endif
*len_sn = strlen(str);
memcpy(buf_sn, str, strlen(str));
-
+#else
+ const char *mock_sn = "";
+ *len_sn = strlen(mock_sn);
+ memcpy(buf_sn, mock_sn, strlen(mock_sn));
+#endif
return CSI_OK;
}
memset_s(&adv_data_info, sizeof(gap_ble_config_adv_data_t), 0, sizeof(gap_ble_config_adv_data_t));\r
\r
int32_t ret = gap_ble_get_local_name(ble_name, &ble_name_len);\r
- if (ret != 0) {\r
+ if (ret != 0) \r
+ {\r
ALIPAY_PRINT_ERR(0, "gap_ble_get_local_name fail, name:%s,len:%u,ret:%u.", ble_name, ble_name_len, ret);\r
memset_s(ble_name, ALIPAY_BLE_NAME_LENGTH, 0, ALIPAY_BLE_NAME_LENGTH);\r
memcpy_s(ble_name, ALIPAY_BLE_NAME_LENGTH, ALIPAY_BLE_DEFAULT_NAME, ALIPAY_BLE_DEFAULT_NAME_LEN);\r
memcpy_s(adv_data + adv_data_len, sizeof(adv_mac_head), adv_mac_head, sizeof(adv_mac_head));\r
adv_data_len = adv_data_len + sizeof(adv_mac_head);\r
\r
- uint8_t scan_data[20];\r
- memset(scan_data,0,20);\r
- adv_data_info.scan_rsp_data = scan_data;\r
- adv_data_info.scan_rsp_length = 0;\r
+// uint8_t scan_data[20];\r
+// memset(scan_data,0,20);\r
+// adv_data_info.scan_rsp_data = scan_data;\r
+// adv_data_info.scan_rsp_length = 0;\r
adv_data_info.adv_data = adv_data;\r
adv_data_info.adv_length = adv_data_len;\r
ALIPAY_PRINT_ERR(0, "adv_data_info.adv_length:%u.", adv_data_len);\r
}\r
ALIPAY_PRINT_ERR(0, "svr_alipay_ble_adv_start bt gap_ble_start_adv ret = 0x%x", ret);\r
}\r
-extern void svr_alipay_reset_init(void);\r
+// extern void svr_alipay_reset_init(void);\r
static void svr_alipay_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_ble_conn_state_t conn_state,\r
gap_ble_pair_state_t pair_state, gap_ble_disc_reason_t disc_reason)\r
\r
conn_state, pair_state);\r
g_alipay_conn_id = conn_id;\r
if (GAP_BLE_STATE_DISCONNECTED == conn_state) { // restart ble adv when disconnected\r
- // svr_alipay_ble_adv_start();\r
- svr_alipay_reset_init();\r
- // gap_ble_start_adv(ALIPAY_BLE_ADV_ID);\r
+ svr_alipay_ble_adv_start();\r
+ // svr_alipay_reset_init();\r
+ //gap_ble_start_adv(ALIPAY_BLE_ADV_ID);\r
} else {\r
svr_alipay_set_adv_start_state(false);\r
}\r
{\r
ALIPAY_PRINT_DEBUG(0, "BleAdvStopCallback adv_id: %d, status:%d\n", adv_id, status);\r
}\r
-static uint16_t alipay_server_handle = 0;\r
+// static uint16_t alipay_server_handle = 0;\r
static void svr_alipay_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid, uint16_t srv_handle,\r
errcode_t status)\r
{\r
- alipay_server_handle = srv_handle;\r
+ // alipay_server_handle = srv_handle;\r
ALIPAY_PRINT_DEBUG(0, "BtGattsServiceAddCallback 0x%x 0x%x 0x%x 0x%x", status, server_id, srv_handle,\r
*((uint16_t *)uuid->uuid));\r
int ret;\r
ALIPAY_PRINT_ERR(0, "gatts_notify_indicate ret:0x%x. serverid:%u,conn_id:%u,handle:%u.", ret, g_alipay_server_id,\r
g_alipay_conn_id, g_alipay_server_handle);\r
}\r
-extern void srv_ble_gap_register_cb(void);\r
+\r
static void svr_alipay_btcallback_reg(void)\r
{\r
g_alipay_gapble_cbs.conn_state_change_cb = svr_alipay_ble_connstate_change_cb;\r
memcpy_s(uuid.uuid, sizeof(uuid.uuid), (char *)&service_id, sizeof(service_id));\r
ret = gatts_register_server(&uuid, &server_id); /* 注册gatt server */\r
if (ret != ERRCODE_SUCC) {\r
- // ALIPAY_PRINT_ERR(0, "gatts_register_server err ret:%u.\r\n", ret);\r
+ ALIPAY_PRINT_ERR(0, "gatts_register_server ret:%u.\r\n", ret);\r
}\r
ALIPAY_PRINT_ERR(0, "gatts_register_server ret: 0x%x server_id = 0x%x", ret, server_id);\r
g_alipay_server_id = server_id;\r
memcpy_s(uuid.uuid, sizeof(uuid.uuid), (char *)&service_id, sizeof(service_id));\r
ret = gatts_add_service(server_id, &uuid, true);\r
if (ret != ERRCODE_SUCC) {\r
- \r
+ //ALIPAY_PRINT_ERR(0, "gatts_add_service ret:%u.\r\n", ret);\r
}\r
ALIPAY_PRINT_ERR(0, "gatts_add_service ret:%u.\r\n", ret);\r
return;\r
}\r
void alipay_unregist_server(void)\r
{\r
+ svr_alipay_ble_adv_stop();\r
gatts_delete_all_services(g_alipay_server_id);\r
gatts_unregister_server(g_alipay_server_id);\r
- svr_alipay_ble_adv_stop();\r
+ g_alipay_ble_init_flag = false;\r
+ g_alipay_server_id = 1;\r
+ g_alipay_server_handle = 0;\r
+ g_alipay_conn_id = 0;\r
}\r
-#ifdef SUPPORT_BLE_SERVICE\r
-extern void ble_unregist_server(void);\r
-#endif\r
\r
void svr_alipay_bluetooth_init(void)\r
{\r
- #ifdef SUPPORT_BLE_SERVICE\r
- ble_unregist_server();\r
- #endif\r
- disable_bt_stack();\r
- svr_alipay_ble_adv_stop();\r
- osDelay(100);\r
bool ret = enable_bt_stack();\r
if (ret != ERRCODE_SUCC) {\r
ALIPAY_PRINT_ERR(0, "enable_bt_stack ret:%u.\r\n", ret);\r
}\r
- // if (g_alipay_ble_init_flag == true) {\r
- // return;\r
- // }\r
+ if (g_alipay_ble_init_flag == true) {\r
+ return;\r
+ }\r
svr_alipay_btcallback_reg();\r
svr_alipay_bt_init_gatts();\r
svr_alipay_ble_adv_start();\r
g_alipay_ble_init_flag = true;\r
return;\r
}\r
-void svr_alipay_reset_init(void)//重新启动alipa的服务\r
-{\r
- #ifdef SUPPORT_BLE_SERVICE\r
- ble_unregist_server();\r
- #endif\r
- osDelay(100);\r
- svr_alipay_btcallback_reg();\r
- svr_alipay_bt_init_gatts();\r
- svr_alipay_ble_adv_start();\r
- return;\r
-}\r
#endif
\ No newline at end of file
{
return PAYMENT_UNSUPPORTED;
}
-extern void svr_alipay_reset_init(void);
+// extern void svr_alipay_reset_init(void);
static int32_t svr_alipay_notify_bt(bool value)
{
if (value) {
printf("svr_alipay_notify_bt true:%d",value);
- svr_alipay_bluetooth_init();
+
+ svr_alipay_ble_adv_start();
} else {
printf("svr_alipay_notify_bt false:%d",value);
- #ifdef SUPPORT_BLE_SERVICE
- svr_bluetooth_init();
- #endif
- // svr_alipay_ble_adv_stop();
+
+ svr_alipay_ble_adv_stop();
}
return 0;
}
if(turnOnFlag)\r
{\r
const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
+ display_api->set_screen_set_keepon_timeout(0);\r
if (display_api->get_screen_state() != SCREEN_ON)\r
{\r
display_api->turn_on_screen();\r
}\r
+ LOS_Msleep(50);\r
//当设置的值是-1 的时候,设置屏幕常亮\r
display_api->set_screen_set_keepon_timeout(-1);\r
}\r
#include "AlipayListItemView.h"\r
#include "AlipayTransListItemView.h"\r
#include "AlipayTransListView.h"\r
-\r
+#include "custom_utils.h"\r
+#include "common/key_code.h"\r
namespace OHOS {\r
static AlipayPresenter *g_alipayPresenter = nullptr;\r
\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter OnStart");\r
Presenter<AlipayMainView>::OnStart();\r
-\r
+ /**启动alipay蓝牙服务*/\r
+ start_alipay_ble_service();\r
/* -------------------------------- 设置支付宝界面常亮 ------------------------------- */\r
alipayMode_->AlipayScreenControl(true);\r
/* -------------------------------------------------------------------------- */\r
\r
void AlipayPresenter::OnStop(void)\r
{\r
+\r
+ /**关闭alipay蓝牙服务*/\r
+ stop_alipay_ble_service();\r
+\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter OnStop");\r
svr_alipay_destroy_task();\r
alipayMode_->AlipayDeinitModel();\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))\r
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
{\r
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
NativeAbility::GetInstance().ChangeSlice(preSlice);\r
\r
void BluetoothModel::Init()\r
{\r
- // bool ret = enable_bt_stack();\r
- // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt enable_bt_stack ret = %d", ret);\r
\r
- BtInitCallBacks();\r
+/**\r
+ * 由于 是否开启蓝牙,并不确认,需要根据客户选择来执行,\r
+ * 因此此处只做 基本数据的初始化,以及某些不会变动的 callback函数注册\r
+ */\r
+#if 0\r
+ bool ret = enable_bt_stack();\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bt enable_bt_stack ret = %d", ret);\r
+ //gatt ble 信息在 支付宝和私有 ble协议中都会用到,因此在对应的应用里进行初始化。\r
#ifdef SUPPORT_ALIPAY_SEC\r
- // svr_alipay_bluetooth_init();\r
+ svr_alipay_bluetooth_init();\r
#else\r
BtInitCallBacksEx();\r
BtInitGatts();\r
#endif\r
- BtInitSpp();\r
+\r
+#endif\r
+\r
+ /**初始化 经典蓝牙callback 经典蓝牙不改动,因此启动就初始化好 */\r
+ BtInitCallBacks();\r
+\r
+ /**启动spp服务 */\r
+ // BtInitSpp();\r
\r
SetUpListCase();\r
SetUpConnedDevicesList();\r
\r
void BtInitCallBacks()\r
{\r
- #if 0\r
g_btGapCallBacks.discovery_result_callback = BtGapDiscoveryResultCallback;\r
g_btGapCallBacks.discovery_state_changed_callback = BtGapDiscoveryStateChangedCallback;\r
g_btGapCallBacks.acl_state_changed_callbak = GapAclStateChangedCallback;\r
g_a2dpSrcCallbacks.configuration_changed_cb = A2dpSrcConfigureChanged;\r
g_a2dpSrcCallbacks.playing_state_changed_cb = A2dpSrcPlayingStateChanged;\r
a2dp_src_register_callbacks(&g_a2dpSrcCallbacks);\r
- #endif\r
-\r
/* a2dp sink */\r
- // a2dp_snk_register_callbacks(&g_a2dp_snk_callbacks);\r
+ a2dp_snk_register_callbacks(&g_a2dp_snk_callbacks);\r
}\r
\r
void BtInitCallBacksEx()\r
{\r
- #if 0\r
g_gapBleCallbacks.conn_state_change_cb = BleConnStateChangeCallback;\r
g_gapBleCallbacks.start_adv_cb = BleAdvStartCallback;\r
g_gapBleCallbacks.stop_adv_cb = BleAdvStopCallback;\r
g_btGattsCallbacks.write_request_cb = BtGattsRequestWriteCallback;\r
g_btGattsCallbacks.mtu_changed_cb = NULL;\r
gatts_register_callbacks(&g_btGattsCallbacks);\r
- #endif\r
}\r
\r
void BtInitGatts(void)\r
{\r
- #if 0\r
uint16_t id = BLE_SERVICE_UUID;\r
uint16_t ser_id = 0x1FFF;\r
uint8_t serverId = 0;\r
memcpy_s(uuid.uuid, sizeof(uuid.uuid), (char *)&id, sizeof(id));\r
ret = gatts_add_service(serverId, &uuid, true);\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "gatts_add_service ret: 0x%x", ret);\r
- #endif\r
}\r
\r
static uint8_t Char2Num(int8_t c)\r
\r
ConfigModel::GetInstance()->set_condigData_Bool(ConfigModel::ConfigItem::CONFIGMODEL_ITEM_CLASSIC_BT_SERVICE_ON,true);\r
\r
- #ifdef SUPPORT_BLE_SERVICE\r
- openBle();//主动开启蓝牙\r
- #endif\r
+ start_custom_ble_service();//主动开启蓝牙\r
break;\r
case UICheckBox::UNSELECTED:\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Disabled");\r
ConfigModel::GetInstance()->set_condigData_Bool(ConfigModel::ConfigItem::CONFIGMODEL_ITEM_CLASSIC_BT_SERVICE_ON,false);\r
\r
- #ifdef SUPPORT_BLE_SERVICE\r
- closeBle();\r
- #endif \r
+ stop_custom_ble_service();\r
break;\r
default:\r
break;\r
/***
* 蓝牙服务是否开启
*/
-bool start_ble_service_on_bootup_flag(void);
+bool custom_ble_service_on_flag(void);
/***
* Cat1服务是否开启
*/
/***
* 蓝牙服务是否开启
*/
-bool start_ble_service_on_bootup_flag(void)
+bool custom_ble_service_on_flag(void)
{
return OHOS::ConfigModel::GetInstance()->GetClassicBlueToothState();
}
#include "bleService.h"\r
#include "battery_hal.h"\r
extern uint8_t battery_get_voltage(float *voltage);\r
-extern void openBle(void);\r
namespace OHOS\r
{\r
\r
static const uint8_t ble_adv_type[BLE_ADV_TYPE_LENTH] = {2, 1, 2};\r
static const uint8_t ble_adv_uuid[BLE_ADV_UUID_LENTH] = {0x3, 0x3, 0xe0, 0x18};\r
static const uint8_t ble_adv_tx[4] = {0x03,0x03,0xe0,0x18};\r
-static bool AdverFlag = true;\r
+static bool AdverFlag = false;\r
\r
static uint8_t scan_data[BLE_SCAN_MAC_LENTH] = {0};\r
\r
{ \r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_ble_server_handle %d conn_id :%d write_cb_para->length:%d write_cb_para->handle %d write_cb_para->request_id:%d",g_ble_server_handle,conn_id,write_cb_para->length,\r
write_cb_para->handle,write_cb_para->request_id);\r
- \r
+ for(uint16_t i = 0;i<write_cb_para->length;i++)\r
+ { \r
+ printf("%x ",write_cb_para->value[i]);\r
+ \r
+ }\r
//WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"handle :%d %d %d".write_cb_para->handle,get_factory_ate_write_handl(),get_factory_ota_write_handl());\r
if (write_cb_para->handle == get_factory_ate_write_handl()) \r
{\r
{\r
factory_recv_ota_data(write_cb_para->value,write_cb_para->length,write_cb_para->handle);\r
}else{\r
- for(uint16_t i = 0;i<write_cb_para->length;i++)\r
- { \r
- printf("%02x ",write_cb_para->value[i]);\r
- \r
- }\r
revBleOldData(write_cb_para->value,write_cb_para->length,write_cb_para->handle);\r
}\r
}\r
extern void alipay_unregist_server(void);\r
void ble_unregist_server(void)\r
{\r
+ svr_ble_adv_stop();\r
gatts_delete_all_services(g_ble_server_id);\r
gatts_unregister_server(g_ble_server_id);\r
- svr_ble_adv_stop();\r
\r
}\r
-void svr_ble_reset_init(void)//重新启ble服务\r
-{\r
- alipay_unregist_server();\r
- osDelay(100);\r
- svr_ble_btcallback_reg();\r
- svr_ble_bt_init_gatts();\r
- ble_hid_server_init();\r
- ble_factory_server_init();\r
- svr_ble_adv_start_param();\r
-}\r
-\r
-void svr_bluetooth_init(void)\r
+// void svr_ble_reset_init(void)//重新启ble服务\r
+// {\r
+// alipay_unregist_server();\r
+// osDelay(100);\r
+// svr_ble_btcallback_reg();\r
+// svr_ble_bt_init_gatts();\r
+// ble_hid_server_init();\r
+// ble_factory_server_init();\r
+// svr_ble_adv_start_param();\r
+// }\r
+\r
+static void svr_bluetooth_init(void)\r
{\r
bool ret = enable_bt_stack();\r
// bool ret = enable_ble();\r
// ret = gap_ble_remove_all_pairs();//删除和所有配对的手机app\r
// gap_remove_all_pairs();\r
svr_ble_adv_stop();//停止广播 不发送广播数据 就是app搜索不到该设备了\r
- // ret = disable_bt_stack();//关闭ble 直接断开和当前连接的手机app\r
- ret = disable_ble();//关闭ble 直接断开和当前连接的手机app\r
+\r
+ ble_recv_register_msg_callback(NULL);\r
+ ret = disable_bt_stack();//关闭ble 直接断开和当前连接的手机app\r
+ // ret = disable_ble();//关闭ble 直接断开和当前连接的手机app\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "closeBle ret%d 0x%x-0x%x-0x%x-0x%x-0x%x-0x%x\r\n",ret,bd_addr.addr[0],bd_addr.addr[1],bd_addr.addr[2],bd_addr.addr[3],bd_addr.addr[4],bd_addr.addr[5]);\r
+ }else{\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "AdverFlag false no need closeBle\r\n");\r
+\r
}\r
}\r
//开启蓝牙\r
{\r
AdverFlag = true;\r
svr_bluetooth_init();\r
+ }else{\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "AdverFlag true no need openBle again\r\n");\r
+\r
}\r
}\r
#endif\r
extern uint8_t data2ae3Cmd;//2ae3短指令特征值
extern uint8_t data2ae4Cmd;//长指令特征值 大于20个字节的数据app下发的
extern uint16_t ble_nus_max_data_len;
-void svr_bluetooth_init(void);//蓝牙服务初始化
+// void svr_bluetooth_init(void);//蓝牙服务初始化
void closeBle(void);//主动关闭蓝牙
void openBle(void);//主动开启蓝牙
void svr_ble_adv_start_param(void);//开始蓝牙广播
#define UARTRESET (M_CTL_RB_BASE + 0x0168)
#define UARTBUS0 0x1
#define UARTBUS1 0x0
+
+/**
+ * CUSTOM_UART_RATE = 500000 可以看蓝牙日志
+ * 2000000 可以加快下载文件速度
+*/
+#define CUSTOM_UART_RATE 2000000
typedef struct {
pin_mode_t tx_pin_mode;
pin_mode_t rx_pin_mode;
#ifdef ENABLE_SLIP
.baud_rate = 921600,
#else
- .baud_rate = 2000000,
+ .baud_rate = CUSTOM_UART_RATE,
#endif
.data_bits = UART_DATA_BIT_8,
.parity = UART_PARITY_NONE,
log_factory_at_callback,
#endif
{
- .baud_rate = 2000000,
+ .baud_rate = CUSTOM_UART_RATE,
.data_bits = UART_DATA_BIT_8,
.parity = UART_PARITY_NONE,
.stop_bits = UART_STOP_BIT_1,
{
mcu_os_sys_reset(NULL,NULL);
}
+
+void shutdown_reboot_prejobs_task(void)
+{
+ uapi_calendar_store_date();
+ sync_all_config_to_disk();
+}
static bool doing_shutdown_or_reboot = false;
void shutdown_reboot_prejobs(void)
{
taskcfg.attr.name="shutdown_reboot_prejobs";
taskcfg.attr.priority = osPriorityNormal;
taskcfg.attr.stack_size = 0x1000;
- taskcfg.func = sync_all_config_to_disk;
+ taskcfg.func = shutdown_reboot_prejobs_task;
taskcfg.use_mem = USE_EXTEND_MEM;
errcode_t ret=uapi_create_osThread_custom(&taskcfg);
{
PRINT("startup_post_init_task !\r\n");
+ uapi_calendar_recover_date();
+
if(custom_ble_service_on_flag())
{
start_custom_ble_service();
static uint32_t get_sec_time_from_cat1time(char* time , uint32_t *second , uint8_t *zone)
{
- struct tm tm = { 0 };
+ struct tm _tm = { 0 };
char* ptr = time;
char* tmp;
if (tmp == NULL) { return 1; }
*tmp = '\0';
// 年的计算需要减去1900
- tm.tm_year = strtol(ptr, NULL, DECIMAL) - 1900;
- if (tm.tm_year < TIME_YEAR_OFFSET) {
+ _tm.tm_year = strtol(ptr, NULL, DECIMAL) - 1900;
+ if (_tm.tm_year < TIME_YEAR_OFFSET) {
printf("ERR!year num must bigger than 1970!");
return 3;
}
if (tmp == NULL) { return 1; }
*tmp = '\0';
// 月的计算需要减1
- tm.tm_mon = strtol(ptr, NULL, DECIMAL) - 1;
+ _tm.tm_mon = strtol(ptr, NULL, DECIMAL) - 1;
ptr = tmp + 1;
// 日
tmp = strchr(ptr, ',');
if (tmp == NULL) { return 1; }
*tmp = '\0';
- tm.tm_mday = strtol(ptr, NULL, DECIMAL);
+ _tm.tm_mday = strtol(ptr, NULL, DECIMAL);
ptr = tmp + 1;
// 时
tmp = strchr(ptr, ',');
if (tmp == NULL) { return 1; }
*tmp = '\0';
- tm.tm_hour = strtol(ptr, NULL, DECIMAL);
+ _tm.tm_hour = strtol(ptr, NULL, DECIMAL);
ptr = tmp + 1;
// 分
tmp = strchr(ptr, ',');
if (tmp == NULL) { return 1; }
*tmp = '\0';
- tm.tm_min = strtol(ptr, NULL, DECIMAL);
+ _tm.tm_min = strtol(ptr, NULL, DECIMAL);
ptr = tmp + 1;
// 秒
tmp = strchr(ptr, ',');
if (tmp == NULL) { return 1; }
*tmp = '\0';
- tm.tm_sec = strtol(ptr, NULL, DECIMAL);
+ _tm.tm_sec = strtol(ptr, NULL, DECIMAL);
ptr = tmp + 1;
//毫秒
//时区
if ( *ptr == ' ') { ptr = ptr + 1; }
*zone = strtol(ptr, NULL, DECIMAL);
- *second = (uint32_t)__tm_to_secs(&tm);
+ *second = (uint32_t)__tm_to_secs(&_tm);
*second -= *zone * 3600; //cat1获得的时间时当下时间,实际上要减去zone的时间
- // printf("%04d-%02d-%02d %02d:%02d:%02d %d\n",tm.tm_year,tm.tm_mon,tm.tm_mday,tm.tm_hour,tm.tm_min,tm.tm_sec,*zone);
+ // printf("%04d-%02d-%02d %02d:%02d:%02d %d\n",_tm.tm_year,_tm.tm_mon,_tm.tm_mday,_tm.tm_hour,_tm.tm_min,_tm.tm_sec,*zone);
return 0;
}
errcode_t uapi_set_time_from_cat1(char* cat1time)
//upg_reboot();
}
+#include "driver/calendar.h"
+
+uint32_t uapi_calendar_store_date(void)
+{
+
+ calendar_t date;
+
+ time_t rawtime;
+ struct tm* timeinfo;
+ time(&rawtime);
+ timeinfo = localtime(&rawtime);
+ date.year = timeinfo->tm_year + 1900;
+ date.mon = timeinfo->tm_mon + 1;
+ date.day = timeinfo->tm_mday;
+ date.hour = timeinfo->tm_hour;
+ date.min = timeinfo->tm_min;
+ date.sec = timeinfo->tm_sec;
+
+ errcode_t ret = uapi_calendar_set_datetime(&date);
+ if (ret == ERRCODE_SUCC) {
+ printf("store datetime success: %d-%d-%d %d:%d:%d\r\n", date.year, date.mon, date.day, date.hour, date.min,
+ date.sec);
+ return ERRCODE_SUCC;
+ }
+ printf("Set datetime failed, error code = %d \r\n", ret);
+ return ret;
+}
+
+uint32_t uapi_calendar_recover_date(void)
+{
+ calendar_t date;
+ errcode_t ret = uapi_calendar_get_datetime(&date);
+ if (ret == ERRCODE_SUCC) {
+ printf("Get datetime success: %d-%d-%d %d:%d:%d\r\n", date.year, date.mon, date.day, date.hour, date.min,
+ date.sec);
+
+ {//设置时间
+ struct timeval tv = { 0 };
+ struct tm _tm={0};
+ _tm.tm_year = date.year -1900;
+ _tm.tm_mon = date.mon -1;
+ _tm.tm_mday = date.day;
+ _tm.tm_hour = date.hour;
+ _tm.tm_min = date.min;
+ _tm.tm_sec = date.sec;
+ uint32_t sec = (uint32_t)__tm_to_secs(&_tm);
+ tv.tv_sec = sec;
+ tv.tv_usec = 0;
+ settimeofday(&tv, NULL);
+ }
+
+ return ERRCODE_SUCC;
+ }
+ printf("Get datetime failed, error code = %d \r\n", ret);
+ return ret;
+}
return ERRCODE_SUCC;
}
-// static uint32_t custom_vibrator_swtich(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
-// {
-// UNUSED(strCommonCmd);
+static uint32_t custom_dsp_power_test(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;
-// 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) {
+ PRINT("CUSTOM_UTILSTEST ATCMD Convert Command Failed\n");
+ return ERRCODE_FAIL;
+ }
-// int ret = ConvertCmdToParam(para, paraLen, argv, &argc);
-// if (ret != CUSTOM_UTILS_SUCCESS) {
-// PRINT("CUSTOM_UTILSTEST ATCMD Convert Command Failed\n");
-// return ERRCODE_FAIL;
-// }
+ if (argc != 1) {
+ PRINT("CUSTOM_UTILSTEST power_test ATCMD Set Parameter Failed argc %d\r\nPM_DSP_POWER_UP_AND_RUN=2 PM_DSP_POWER_OFF=3\r\n",argc);
+ return ERRCODE_FAIL;
+ }
-// if (argc != 1) {
-// PRINT("CUSTOM_UTILSTEST ATCMD Set Parameter Failed argc %d\n",argc);
-// return ERRCODE_FAIL;
-// }
-// uint8_t cmd = atoi((char*)argv[0]);
+ uint8_t cmd = atoi((char*)argv[0]);
-// Vibrator_swtich(cmd);
+ if (cmd == 2 )
+ {
+ PRINT("PM_DSP_POWER_UP_AND_RUN=2\r\n",argc);
+ uapi_pm_control(PM_DSP_POWER_UP_AND_RUN);
+
+ }else if (cmd ==3 ){
+ PRINT("PM_DSP_POWER_OFF=3\r\n",argc);
+ uapi_pm_control(PM_DSP_POWER_OFF);
+ }else if (cmd ==0 ){
+ errcode_t ret = gap_ble_stop_scan();
+ PRINT("gap_ble_stop_scan ret %x\r\n",ret);
+ }else{
+ PRINT("arguments only support PM_DSP_POWER_UP_AND_RUN: 2 or PM_DSP_POWER_OFF: 3\r\n");
+ }
+
-// return ERRCODE_SUCC;
-// }
+ return ERRCODE_SUCC;
+}
static uint32_t custom_lcd_getid(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
{
if (_switch == 1)
{
- openBle();
+ start_custom_ble_service();
}else{
- ble_unregist_server();
- closeBle();
- }
+ stop_custom_ble_service();
+ }
return ERRCODE_SUCC;
}
{ (char *)"AT^GETTP", custom_get_tpinfo, (char *)" " },
{ (char *)"AT^BLESERVICE", custom_bleservice_test, (char *)" " },
+ { (char *)"AT^DSPPWR", custom_dsp_power_test, (char *)" " },
};