mcu_hi3321_watch/tjd/ble/protocol/ble_device_setup_server.h
2025-05-26 20:15:20 +08:00

328 lines
9.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**************************************************************************************************
* Copyright (c) Fenda Technologies Co., Ltd. 2020-2021. All rights reserved.
* Description: 设备设置接口
* Author: ball.caojianguang
* Create: 2020-5-21
**************************************************************************************************/
#ifndef _USER_DEVICE_SET_SERVER_H_
#define _USER_DEVICE_SET_SERVER_H_
#include "ble_protocol.h"
#define BEGINFINDPHONE 0
#define ENDFINDPHONE 1
//恢复出厂设置
typedef enum {
reset = 0x01,
reset_max,
} factory_reset_t;
//闹钟宏定义
#define ALARM_MAX_SIZE 6 //定义闹钟数量最大值
#define ALARM_RELATIONSHIP_VALUE 0x0C
/********************************
* 闹钟信息结构体
**********************************/
typedef enum {
LTV_relationship_type = 254,//0xFE
alarm_id_type = 1, //0x01
alarm_H_type,
alarm_M_type,
repeat_type,
alarm_name_type,
alarm_enable_type,
set_smart_alarm_type_max,
} alarmclock_type_t;
#define ALARM_NAME_LENGTH_MAX 24
#define MAC_ADDRESS_LEN 6
//获取设备的MAC地址
enum {
get_mac_type = 0x01,
mac_type,
mac_max_type,
};
//日期时间枚举
typedef enum {
time_type = 0x01,
time_offset_type,
timeday_max,
} data_time_t;
//日期显示格式
enum {
year_month_day = 1,
month_day_year,
day_month_year,
month_day_week,
};
//时间显示格式
enum {
twelve_hour_format = 1,
twenty_four_hour_format,
};
//设置时间显示格式的type
enum {
date_display_type = 1,
time_display_type,
display_type_max,
};
//勿扰模式枚举
enum {
all_no_disturb_type = 0x01,
without_no_disturb_type,
regularly_no_disturb_type = 0x04,//定时免打扰开关
regularly_start_time_H_type,
regularly_start_time_M_type,
regularly_end_time_H_type,
regularly_end_time_M_type,
no_disturb_max_type,
};
/**************************************获取版本号****************************************************/
//获取软件版本号
#define VERSION_LENGTH_MAX 20
enum {
get_version_type = 0x01,
version_type,
version_max_type
};
//获取硬件版本号
enum {
get_hardware_version_type = 0x01,
hardware_version_type,
hardware_version_max_type,
};
/**************************************获取版本号****************************************************/
//找手机
enum {
find_phone_type = 0x01,
find_phone_type_max,
};
//蓝牙断开提醒开关
enum {
ble_disconnect_remind_type = 0x01,
ble_disconnect_remind_max_type,
};
//蓝牙断开提醒开关
enum {
MEASURING_UNIT_TYPE = 0x01,
MEASURING_UNIT_MAX_TYPE,
};
//闹钟同步
enum {
Alarm_Change_Type = 0x01,
Alarm_Change_max_Type,
};
/**************************************充电***************************************************/
enum {
PROTOCOL_CHANGING = 1, // 充电中
PROTOCOL_NOT_USB, // 不充电了
PROTOCOL_CHARGE_DON, // 充满电了
};
//获取设备电量/电压
enum {
GET_DEVICE_POWER_TYPE = 0x01,
DEVICE_POWER_TYPE,
DEVICE_CHARGE_STATUS_TYPE,
DEVICE_POWER_MAX_TYPE,
};
//get_power枚举
enum {
GET_POWER_CHARGE_STATUS = 0x01,//获取电量和充电状态
};
//4.2.19 设备主动上报电量
enum {
REPORT_BATTERY_POWER_TYPE = 0x01,
REPORT_BATTERY_POWER_RATTLE_TYPE = 0x02,
REPORT_BATTERY_POWER_MAX_TYPE,
};
/*
//4.2.20 设备主动上报充电状态
enum {
REPORT_BATTERY_CHARGE_STATUS_TYPE = 0x01,
};
*/
//获取设备各模块版本号GPS、NFC、TP--4.2.21 4.2.28
enum {
GET_VERSION_TYPE = 0x01,
VERSION_TP_TYPE,
VERSION_NFC_TYPE,
VERSION_GPS_TYPE,
VERSION_FONT_TYPE,
VERSION_IMAGE_TYPE,
FIRMWARE_VERSION_TYPE,
HARDWARE_VERSION_TYPE,
DEVICE_TYPE_TYPE,
DEVICE_SN_TYPE,
DEVICE_MAC_TYPE,
DEVICE_MODEL_TYPE,
DEVICE_PID_TYPE,
DEVICE_VID_TYPE,
};
// 4.2.23 双击亮屏开关
enum {
DEVICE_DOUBLE_BRIGHT_SWITCH_TYPE = 0x01,
};
// 4.2.24 手机型号下发
enum {
DEVICE_GET_PHONE_TYPE_TYPE = 0x01,
};
// 4.2.25 推送新版本提醒到设备
enum {
DEVICE_NEW_VERSION_TYPE = 0x01,
DEVICE_VERSION_TYPE_TYPE = 0x02,
};
// 4.2.26 喝水提醒
enum {
WATER_REMIND_SWITCH_TYPE = 0x01,
WATER_REMIND_INTERVAL_TYPE = 0x02,
WATER_REMIND_START_TYPE = 0x03,
WATER_REMIND_END_TYPE = 0x04,
};
// 4.2.27 手机电量下发到设备
enum {
PHONE_BATTERY_SET_POWER_TYPE = 0x01,
};
// 4.2.29 手机下发网络状态
enum {
PHONE_INTERNET_STATUS_TYPE = 0x01,
};
// 4.2.30 手机找手环命令
enum {
FIND_DEVICE_TYPE = 0x01,
};
// 4.2.31 设备上报找手环状态
enum {
FIND_DEVICE_STATUS_TYPE = 0x01,
};
//4.2.36 设备通知APP 同步勿扰信息
enum {
REPORT_DISTURB_STATUS_TYPE = 0x01,
};
extern bool_t gTestAlarmTimeoutFlag; //UI界面响应闹钟超时
void BLE_SetDeviceTime(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_Factory_Reset(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_GetDeviceTime(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_SetAlarmClock(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_GetAlarmClock(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_UserRecvAndSetAvoidDisturbInfo(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_UserGetDeviceMacAddr(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void Ble_UserGetSoftwareVersion(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void Ble_UserGetHardwareVersion(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_UserBeginFindPhoneACK(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_NotifyAPPSynchronizationAlarmACK(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_UserBeginFindSmartPhoneUpload(uint8_t begin);
void BLE_UserEndFindSmartPhoneUpload(uint8_t end);
void BLE_NotifyAPPSynchronizationAlarm(void);
void BLE_NotifyAPPSynchronizationAlarm(void);
void Ble_SetTimeFormat(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void Ble_DisConnectedNotifySwitch(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_SetMeasuringUnits(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_UserGetDeviceElectricQuantityOrVoltage(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_DeviceElectricQuantityUpload(void);
void BLE_DeviceChargingStateUpload(void);
void BLE_GetDeviceModeVersion(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_doublePointBrightScreenSwitch(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_getPhoneType(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_getNewVersionNotice(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_drinkWaterRemindSet(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_getPhoneBatteryInfo(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_GetDeviceVersionInfo(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_getPhoneInternetStatus(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_findDevice(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_ReportFindDeviceStatus(uint8_t status);
void BLE_reportDisturbStatus(void);
#define SET_TEMP_NUM_MAX 10
/********************************
* 设备设置--4.2 命令ID
**********************************/
enum {
SET_TIME_ID = 1,//4.2.1
GET_TIME_ID = 2, // 4.2.2
RAISE_WRIST_BRIGHT_SCREEN_SWITCH_ID = 3, //4.2.3
TRUN_WRIST_CUT_SCREEN_SWITCH_ID = 4, //4.2.4
ACTIVITY_REMINDER_SWITCH_ID = 5, //4.2.5
FACTORY_RESET_ID = 6, //4.2.6
SET_ALARM_ID,//4.2.7
GET_ALARM_ID, //4.2.8
NO_DISTURB_ID, //4.2.9
GET_DEVICE_MAC_ADDR = 0x10, //4.2.10
GET_SOFTWARE_NUM_ID = 0x11, //4.2.11
GET_HARDWARE_NUM_ID = 0x12, //4.2.12
FIND_PHONE_ID = 0x13, //4.2.13
NOTIFY_APP_SYNCH_ID = 0x14,//4.2.14
BLE_DISCON_REMIND_SWITCH_ID = 0x16,//4.2.16
GET_ELEC_VOLTAGE_ID = 0x18,//4.2.18
DEVICE_UPLOAD_ELEC_ID = 0x19,
DEVICE_UPLOAD_CHARGE_STATUS = 0x20,
GET_DEVICE_MODE_VERSION = 0x21,
DEVICE_DOUBLE_BRIGHT_SWITCH_ID = 0x23,
DEVICE_GET_PHONE_TYPE_ID = 0x24,
GET_NEW_VERSION_NOTIC_ID = 0x25,
DRINK_WATER_REMIND_SET_ID = 0x26,
GET_PHONE_BATTERY_INFO_ID = 0x27,
GET_DEVICE_VERSION_INFO_ID = 0x28,
GET_PHONE_INTERNET_STATUS_ID = 0x29,
FIND_DEVICE_ID = 0x30,
REPORT_FIND_DEVICE_STATUS_ID = 0x31,
BLE_GET_DISTURBINFO_ID = 0x35,
REPORT_DISTURBINFO_ID = 0x36,
SET_TEMPERATURE_UNIT_ID = 0X37,
DEVICE_SETUP_SERVERE_MAX_ID,
};
extern const p_func_t DeviceSetupServerFunc[DEVICE_SETUP_SERVERE_MAX_ID];
#endif