From: p15692025051 <846603105@qq.com> Date: Sat, 19 Aug 2023 10:23:28 +0000 (+0800) Subject: 微聊UI优化 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=7c37415aa22100f5646bf595e0049ba8f3da0ed0;p=mirrors%2FASR1603_G5.git 微聊UI优化 --- diff --git a/2.sdk/Helios_SDK/components/SC7A20/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.h b/2.sdk/Helios_SDK/components/SC7A20/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.h index 5f15c098..fc3ff82d 100644 --- a/2.sdk/Helios_SDK/components/SC7A20/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.h +++ b/2.sdk/Helios_SDK/components/SC7A20/SL_Watch_Pedo_Kcal_Wrist_Sleep_Sway_L_Algorithm.h @@ -9,15 +9,15 @@ Copyright (c) 2017 Silan MEMS. All Rights Reserved. //0x00: for debug //0x01: release version -/***ʹÓÃÇý¶¯Ç°Çë¸ù¾Ýʵ¼Ê½ÓÏßÇé¿öÅäÖÃ******/ -/**SC7A20µÄSDO ½Å½ÓµØ£º 0****************/ -/**SC7A20µÄSDO ½Å½ÓµçÔ´£º1****************/ +/***使用驱动前请根据实际接线情况配置******/ +/**SC7A20的SDO 脚接地: 0****************/ +/**SC7A20的SDO 脚接电源:1****************/ #define SL_SC7A20_SDO_VDD_GND 1 /*****************************************/ -/***ʹÓÃÇý¶¯Ç°Çë¸ù¾Ýʵ¼ÊIICÇé¿ö½øÐÐÅäÖÃ***/ -/**SC7A20µÄIIC ½Ó¿ÚµØÖ·ÀàÐÍ 7bits£º 0****/ -/**SC7A20µÄIIC ½Ó¿ÚµØÖ·ÀàÐÍ 8bits£º 1****/ +/***使用驱动前请根据实际IIC情况进行配置***/ +/**SC7A20的IIC 接口地址类型 7bits: 0****/ +/**SC7A20的IIC 接口地址类型 8bits: 1****/ #define SL_SC7A20_IIC_7BITS_8BITS 1 /*****************************************/ @@ -46,135 +46,135 @@ Copyright (c) 2017 Silan MEMS. All Rights Reserved. // typedef enum {FALSE = 0,TRUE = !FALSE} bool; // ; -/********¿Í»§ÐèÒª½øÐеÄIIC½Ó¿Ú·â°üº¯Êý****************/ +/********客户需要进行的IIC接口封包函数****************/ extern unsigned char SL_SC7A20_I2c_Spi_Write(bool sl_spi_iic,unsigned char reg, unsigned char dat); extern unsigned char SL_SC7A20_I2c_Spi_Read(bool sl_spi_iic,unsigned char reg, unsigned char len, unsigned char *buf); -/**SL_SC7A20_I2c_Spi_Write º¯ÊýÖУ¬ sl_spi_iic:0=spi 1=i2c Reg£º¼Ä´æÆ÷µØÖ· dat£º¼Ä´æÆ÷µÄÅäÖÃÖµ*******************/ -/**SL_SC7A20_I2c_Spi_Write º¯Êý ÊÇÒ»¸öµ¥´ÎдµÄº¯Êý*******************************************************************/ -/***SL_SC7A20_I2c_Spi_Read º¯ÊýÖУ¬ sl_spi_iic:0=spi 1=i2c Reg ͬÉÏ£¬len:¶ÁÈ¡Êý¾Ý³¤¶È£¬buf:´æ´¢Êý¾ÝÊ×µØÖ·£¨Ö¸Õ룩***/ -/***SL_SC7A20_I2c_Spi_Read º¯Êý ÊÇ¿ÉÒÔ½øÐе¥´Î¶Á»ò¶à´ÎÁ¬Ðø¶ÁÈ¡µÄº¯Êý*************************************************/ +/**SL_SC7A20_I2c_Spi_Write 函数中, sl_spi_iic:0=spi 1=i2c Reg:寄存器地址 dat:寄存器的配置值*******************/ +/**SL_SC7A20_I2c_Spi_Write 函数 是一个单次写的函数*******************************************************************/ +/***SL_SC7A20_I2c_Spi_Read 函数中, sl_spi_iic:0=spi 1=i2c Reg 同上,len:读取数据长度,buf:存储数据首地址(指针)***/ +/***SL_SC7A20_I2c_Spi_Read 函数 是可以进行单次读或多次连续读取的函数*************************************************/ -/*************Çý¶¯³õʼ»¯º¯Êý**************/ +/*************驱动初始化函数**************/ signed char SL_SC7A20_Driver_Init(bool Sl_spi_iic_init,unsigned char Sl_pull_up_mode); -/***ÊäÈë²ÎÊý:1,Sl_spi_iic_init:0-1***2,PULL_UP_MODE:0x00 0x08 0x04 0x0c********/ -/****Sl_spi_iic_init=0£ºSPI MODE, Sl_pull_up_mode config failed****************/ -/****Sl_spi_iic_init=1£ºIIC MODE***********************************************/ +/***输入参数:1,Sl_spi_iic_init:0-1***2,PULL_UP_MODE:0x00 0x08 0x04 0x0c********/ +/****Sl_spi_iic_init=0:SPI MODE, Sl_pull_up_mode config failed****************/ +/****Sl_spi_iic_init=1:IIC MODE***********************************************/ /****Sl_pull_up_mode=0x00: SDO I2C pull up***********************************/ /****Sl_pull_up_mode=0x08: I2C pull up and SDO open drain*******************/ /****Sl_pull_up_mode=0x04: SDO pull up and I2C open drain*******************/ /****Sl_pull_up_mode=0x0C: SDO I2C open drain********************************/ -/****SDO½Å½ÓµØ£¬ÍƼö¹Ø±ÕSDOÄÚ²¿ÉÏÀ­µç×è****************************************/ -/****SPIͨѶ£¬ÍƼö¹Ø±ÕSDA£¬SCLÄÚ²¿ÉÏÀ­µç×裬SDOÄÚ²¿ÉÏÀ­µç×è»á×Ô¶¯¹Ø±Õ**********/ - -/*************·µ»ØÊý¾ÝÇé¿öÈçÏÂ*****************/ -/**return : 0x11/0x26 ±íʾCHIP ID Õý³£*********/ -/**return : 0 ±íʾ¶ÁÈ¡Òì³£*************/ -/**return :-1; SPI ͨÐÅÎÊÌâ*************/ -/**return :-2; IIC ͨÐÅÎÊÌâ*************/ -/**return :-3; Á¬Ðø¶ÁÈ¡ ͨÐÅÎÊÌâ********/ - -/***************Ö´ÐÐË㷨ǰÐèÒª¶ÁÈ¡FIFOÊý¾Ý*****/ -/***************FIFOÊý¾Ý¶ÁÈ¡ºó£¬FIFO»áÇå¿Õ*****/ -/***************ËùÒÔFIFOÖ»Äܶ¨Ê±¶Áȡһ´Î*******/ +/****SDO脚接地,推荐关闭SDO内部上拉电阻****************************************/ +/****SPI通讯,推荐关闭SDA,SCL内部上拉电阻,SDO内部上拉电阻会自动关闭**********/ + +/*************返回数据情况如下*****************/ +/**return : 0x11/0x26 表示CHIP ID 正常*********/ +/**return : 0 表示读取异常*************/ +/**return :-1; SPI 通信问题*************/ +/**return :-2; IIC 通信问题*************/ +/**return :-3; 连续读取 通信问题********/ + +/***************执行算法前需要读取FIFO数据*****/ +/***************FIFO数据读取后,FIFO会清空*****/ +/***************所以FIFO只能定时读取一次*******/ unsigned char SL_SC7A20_Read_FIFO(void); -/**return : FIFO_LEN ±íʾÊý×鳤¶È***********/ +/**return : FIFO_LEN 表示数组长度***********/ -/****˵Ã÷:¸Ãº¯ÊýÐèÒª¶¨Ê±Ö´ÐÐ,´Ó¶ø±£Ö¤Ëã·¨Ö´Ðе½Î»**/ -/***************Ö´ÐÐËã·¨»ñÈ¡¼Æ²½½á¹û***************/ +/****说明:该函数需要定时执行,从而保证算法执行到位**/ +/***************执行算法获取计步结果***************/ unsigned int SL_Watch_Kcal_Pedo_Algo(bool sl_music_motor_en); -/***sl_music_motor_en=0: Âí´ïµç»úºÍÒôÀÖ¹¦ÄÜδ´ò¿ª**/ -/***sl_music_motor_en=1: Âí´ïµç»úºÍÒôÀÖ¹¦ÄÜÒÑ´ò¿ª**/ -/**************»ñÈ¡µ±ÌìµÄµ±Ç°¼Æ²½Öµ****************/ -/*************Êä³öÊý¾ÝΪ£º¼Æ²½Öµ(²½)***************/ +/***sl_music_motor_en=0: 马达电机和音乐功能未打开**/ +/***sl_music_motor_en=1: 马达电机和音乐功能已打开**/ +/**************获取当天的当前计步值****************/ +/*************输出数据为:计步值(æ­¥)***************/ -/***************»ñÈ¡ÈýÖáԭʼÊý¾Ý***************/ +/***************获取三轴原始数据***************/ unsigned char SL_SC7A20_GET_FIFO_Buf(signed short *sl_x_buf,signed short *sl_y_buf,signed short *sl_z_buf,bool filter_en); -/****************Ö´ÐÐËã·¨ºóÖ´ÐиÃÃüÁî**********/ -/**x_buf y_buf z_buf : ³¤¶È32µÄÊý×éÊ×µØÖ·****/ -/**filter_en£º0 µÍͨÂ˲¨½ûÖ¹ 1£ºµÍͨÂ˲¨Ê¹ÄÜ***/ -/****************·µ»ØÊý¾ÝÇé¿öÈçÏÂ**************/ -/**return : FIFO_LEN ±íʾÊý×鳤¶È***********/ +/****************执行算法后执行该命令**********/ +/**x_buf y_buf z_buf : 长度32的数组首地址****/ +/**filter_en:0 低通滤波禁止 1:低通滤波使能***/ +/****************返回数据情况如下**************/ +/**return : FIFO_LEN 表示数组长度***********/ -/******************¸´Î»¼Æ²½Öµ************************/ +/******************复位计步值************************/ void SL_Pedo_Kcal_ResetStepCount(void); -/**********ÊäÈëÊý¾ÝΪ£ºÎÞ******Êä³öÊý¾ÝΪ£ºÎÞ********/ -/*ʹÓ÷½·¨: ϵͳʱ¼äµ½µÚ¶þÌìʱ£¬µ÷Óøú¯ÊýÇå³ý¼Æ²½Öµ*/ +/**********输入数据为:无******输出数据为:无********/ +/*使用方法: 系统时间到第二天时,调用该函数清除计步值*/ -/*******************¼Æ²½×´Ì¬¸´Î»**********************/ +/*******************计步状态复位**********************/ void SL_Pedo_WorkMode_Reset(void); -/******************ÊäÈë²ÎÊý£ºÎÞ***********************/ -/******************Êä³öÖµ²ÎÊý£ºÎÞ*********************/ +/******************输入参数:无***********************/ +/******************输出值参数:无*********************/ -/******************Éý¼¶ºó£¬ÉèÖüƲ½Öµ,¾àÀë,ÈÈÁ¿************************/ -/******************Éý¼¶ºó£¬ÇëÔÚ³õʼ»¯º¯Êýºó£¬Ôö¼Ó¸Ãº¯Êý****************/ +/******************升级后,设置计步值,距离,热量************************/ +/******************升级后,请在初始化函数后,增加该函数****************/ void SL_Pedo_StepCount_Set(unsigned int sl_pedo_value,unsigned int sl_dis_value,unsigned int sl_kcal_value); -/**********ÊäÈëÊý¾ÝΪ£ºsl_pedo_value ¼Æ²½Öµ*****/ -/**********ÊäÈëÊý¾ÝΪ£ºsl_dis_value ¾àÀëÖµ*****/ -/**********ÊäÈëÊý¾ÝΪ£ºsl_kcal_value ÈÈÁ¿Öµ*****/ +/**********输入数据为:sl_pedo_value 计步值*****/ +/**********输入数据为:sl_dis_value 距离值*****/ +/**********输入数据为:sl_kcal_value 热量值*****/ -/******************¼Æ²½ÁéÃô¶ÈÉèÖÃ********************/ +/******************计步灵敏度设置********************/ void SL_PEDO_TH_SET(unsigned char sl_pedo_amp,unsigned char sl_pedo_th,unsigned char sl_pedo_weak,unsigned char sl_zcr_lel,unsigned char sl_scope_lel); /******sl_pedo_amp>4&&sl_pedo_amp<201**************************/ -/******sl_pedo_amp:ԽСÁéÃô¶ÈÔ½¸ß£¬Ô½ÈÝÒ׼Ʋ½******************/ -/******sl_pedo_amp:Ô½´óÁéÃô¶ÈÔ½¸ß£¬Ô½ÄѼƲ½********************/ -/******sl_pedo_amp:ĬÈÏÖµ26£¬²»ÉèÖþÍÊÇ26**********************/ +/******sl_pedo_amp:越小灵敏度越高,越容易计步******************/ +/******sl_pedo_amp:越大灵敏度越高,越难计步********************/ +/******sl_pedo_amp:默认值26,不设置就是26**********************/ /******sl_pedo_th>5&&sl_pedo_th<50*****************************/ -/******sl_pedo_th:ԽСÁéÃô¶ÈÔ½¸ß£¬Ô½ÈÝÒ׼Ʋ½*******************/ -/******sl_pedo_th:Ô½´óÁéÃô¶ÈÔ½¸ß£¬Ô½ÄѼƲ½*********************/ -/******sl_pedo_th:ĬÈÏÖµ10£¬²»ÉèÖþÍÊÇ10***********************/ +/******sl_pedo_th:越小灵敏度越高,越容易计步*******************/ +/******sl_pedo_th:越大灵敏度越高,越难计步*********************/ +/******sl_pedo_th:默认值10,不设置就是10***********************/ /******sl_pedo_weak>=0&&sl_pedo_weak<6*************************/ -/******sl_pedo_th:0,²»´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ*********************/ -/******sl_pedo_th:1,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/ -/******sl_pedo_th:2,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/ -/******sl_pedo_th:3,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/ -/******sl_pedo_th:4,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/ -/******sl_pedo_th:5,´ò¿ªÇá΢×ß·¼Æ²½¹¦ÄÜ***********************/ -/******sl_pedo_th:ĬÈÏÖµ0,ÉèÖõÄÖµÔ½´ó£¬¼ì²â¼Æ²½µÄÔ½ÁéÃô*******/ +/******sl_pedo_th:0,不打开轻微走路计步功能*********************/ +/******sl_pedo_th:1,打开轻微走路计步功能***********************/ +/******sl_pedo_th:2,打开轻微走路计步功能***********************/ +/******sl_pedo_th:3,打开轻微走路计步功能***********************/ +/******sl_pedo_th:4,打开轻微走路计步功能***********************/ +/******sl_pedo_th:5,打开轻微走路计步功能***********************/ +/******sl_pedo_th:默认值0,设置的值越大,检测计步的越灵敏*******/ /*****sl_zcr_lel>=0&&sl_zcr_lel<=255***************************/ -/*****sl_zcr_lel:ĬÈÏÖµ=20,ÉèÖõÄֵԽС£¬Ô½ÈÝÒׯÁ±ÎÀ®°ÈÕð¶¯****/ -/*****Ò»¶¨Ê±¼äÄڵĹýÁãÂʼÆËã***********************************/ +/*****sl_zcr_lel:默认值=20,设置的值越小,越容易屏蔽喇叭震动****/ +/*****一定时间内的过零率计算***********************************/ /*****sl_scope_lel>=0&&sl_scope_lel<=255***********************/ -/*****ÕûÌåÊý¾Ý·ù¶ÈãÐÖµ*****************************************/ +/*****整体数据幅度阈值*****************************************/ -/*******¼Æ²½Ö÷ÖáÉèÖÃ****************/ +/*******计步主轴设置****************/ void SL_PEDO_SET_AXIS(unsigned char sl_xyz); -/***sl_xyz:0 xÖá*******************/ -/***sl_xyz:1 yÖá*******************/ -/***sl_xyz:2 zÖá*******************/ -/***sl_xyz:3 Ëã·¨¾ö¶¨**************/ +/***sl_xyz:0 xè½´*******************/ +/***sl_xyz:1 yè½´*******************/ +/***sl_xyz:2 zè½´*******************/ +/***sl_xyz:3 算法决定**************/ -/*ÉèÖÃÔ˶¯¼ì²â·ù¶ÈãÐÖµºÍʱ¼äãÐÖµ****/ +/*设置运动检测幅度阈值和时间阈值****/ void SL_PEDO_INT_SET(unsigned char V_TH,unsigned char T_TH,bool INT_EN); /***V_TH:0 0-127************************************/ /***T_TH:1 0-127************************************/ -/***INT_EN:0 ¹Ø±ÕÖжϹ¦ÄÜ£¬1£¬´ò¿ªÖжÏ״̬¼à²â¹¦ÄÜ***/ +/***INT_EN:0 关闭中断功能,1,打开中断状态监测功能***/ /***USE AOI2 INT*************************************/ -/*ÉèÖÃÔ˶¯×´Ì¬¶ÁÈ¡******************/ +/*设置运动状态读取******************/ bool SL_INT_STATUS_READ(void); -/*0£º ûÓÐÔ˶¯*********************/ -/*1£º ÓÐÔ˶¯***********************/ -/*¹Ø±ÕÖжϹ¦ÄÜÇé¿öÏ£¬Ò»Ö±Êä³ö1*****/ - -/***********¹Ø±ÕIICÉ豸**************/ -/***********Power down º¯Êý**********/ -/********²»Ê¹ÓøÃÉ豸Çé¿öÏÂ**********/ -/****ÈçÐèÖØÆô£¬Ê¹ÓÃÇý¶¯³õʼ»¯º¯Êý****/ +/*0: 没有运动*********************/ +/*1: 有运动***********************/ +/*关闭中断功能情况下,一直输出1*****/ + +/***********关闭IIC设备**************/ +/***********Power down 函数**********/ +/********不使用该设备情况下**********/ +/****如需重启,使用驱动初始化函数****/ bool SL_SC7A20_Power_Down(void); -/*************ÊäÈë²ÎÊý:ÎÞ************/ -/**********·µ»Ø²ÎÊýÇé¿ö˵Ã÷**********/ +/*************输入参数:无************/ +/**********返回参数情况说明**********/ /**return 1: Power Down Success*****/ /**return 0: Power Down Fail********/ -/*********´«¸ÐÆ÷µÄ¹¤×÷ƵÂÊÉèÖÃ***********/ +/*********传感器的工作频率设置***********/ void SC7A20_ODR_SET(bool sl_odr);//10 50/25 /**sl_odr:0 10Hz(SC7A20E) 25Hz(SC7A20)***/ /**sl_odr:1 25Hz(SC7A20E) 50Hz(SC7A20)***/ @@ -182,174 +182,174 @@ void SC7A20_ODR_SET(bool sl_odr);//10 50/25 -/*************³õʼ»¯¸öÈ˲ÎÊý*************/ -/**²ÎÊý³õʼ»¯£¬ÓÃÓÚÈÈÁ¿£¬¾àÀë¼ÆËã********/ +/*************初始化个人参数*************/ +/**参数初始化,用于热量,距离计算********/ void SL_Pedo_Person_Inf_Init(unsigned char *Person_Inf_Init); -/*********ÊäÈëÖ¸Õë²ÎÊý·Ö±ðÊÇ:Éí¸ß ÌåÖØ ÄêÁä ÐÔ±ð***¾ÙÀý:178,60,26 1*********/ -/**Éí¸ß·¶Î§: 30cm ~ 250cm ***********/ -/**ÌåÖØ·¶Î§: 10Kg ~ 200Kg ***********/ -/**ÄêÁ䷶Χ: 3Ëê ~ 150Ëê ***********/ -/**ÐÔ±ð·¶Î§: 0 ~ 1 0:Å® 1:ÄÐ ****/ +/*********输入指针参数分别是:身高 体重 年龄 性别***举例:178,60,26 1*********/ +/**身高范围: 30cm ~ 250cm ***********/ +/**体重范围: 10Kg ~ 200Kg ***********/ +/**年龄范围: 3岁 ~ 150岁 ***********/ +/**性别范围: 0 ~ 1 0:女 1:男 ****/ -/*********************»ñÈ¡Ô˶¯×´Ì¬Öµ**********************/ +/*********************获取运动状态值**********************/ unsigned char SL_Pedo_GetMotion_Status(void); -/**********ÊäÈëÊý¾ÝΪ£ºÎÞ*********************************/ -/**********Êä³öÊý¾ÝΪ£º0 ~ 3 *****************************/ -/**Êä³öÊý¾ÝΪ£º0 *¾²Ö¹»ò¾²×ø**********/ -/**Êä³öÊý¾ÝΪ£º1 *Âý×ß»òÉ¢²½**********/ -/**Êä³öÊý¾ÝΪ£º2 *Õý³£×ß·************/ -/**Êä³öÊý¾ÝΪ£º3 *Åܲ½»ò¾çÁÒÔ˶¯******/ - -/**************»ñÈ¡½ØÖ¹µ±Ç°µ±ÌìµÄÐÐ×ß¾àÀë*****************/ +/**********输入数据为:无*********************************/ +/**********输出数据为:0 ~ 3 *****************************/ +/**输出数据为:0 *静止或静坐**********/ +/**输出数据为:1 *慢走或散步**********/ +/**输出数据为:2 *正常走路************/ +/**输出数据为:3 *跑步或剧烈运动******/ + +/**************获取截止当前当天的行走距离*****************/ unsigned int SL_Pedo_Step_Get_Distance(void); -/*******************ÊäÈëÊý¾ÝΪ£ºÎÞ************************/ -/*******************Êä³öÊý¾ÝΪ£ºµ±ÌìÐÐ×ß¾àÀë *************/ -/*******************µ¥Î»: ·ÖÃ×(dm)******************/ +/*******************输入数据为:无************************/ +/*******************输出数据为:当天行走距离 *************/ +/*******************单位: 分米(dm)******************/ -/**************»ñÈ¡½ØÖ¹µ±Ç°µ±ÌìµÄÈÈÁ¿ÏûºÄ*****************/ +/**************获取截止当前当天的热量消耗*****************/ unsigned int SL_Pedo_Step_Get_KCal(void); -/*******************ÊäÈëÊý¾ÝΪ£ºÎÞ************************/ -/*******************Êä³öÊý¾ÝΪ£ºµ±ÌìÈÈÁ¿ÏûºÄÖµ ***********/ -/*********µ¥Î»: ´ó¿¨ 1¸öµ¥Î»=0.1´ó¿¨******************/ +/*******************输入数据为:无************************/ +/*******************输出数据为:当天热量消耗值 ***********/ +/*********单位: 大卡 1个单位=0.1大卡******************/ -/**************»ñÈ¡×î½üÒ»¶Îʱ¼äµÄ×ß·ƽ¾ù·ù¶È*************/ +/**************获取最近一段时间的走路平均幅度*************/ unsigned short SL_Pedo_Step_Get_Avg_Amp(void); -/********************ÊäÈëÊý¾ÝΪ£ºÎÞ***********************/ -/***********************1LSB¡ÖXXXmg************************/ +/********************输入数据为:无***********************/ +/***********************1LSB≈XXXmg************************/ -/***********************»ñÈ¡µ±Ç°×ß·ƽ¾ù²½Æµ**************/ +/***********************获取当前走路平均步频**************/ unsigned char SL_Pedo_Step_Get_Step_Per_Min(void); -/********************ÊäÈëÊý¾ÝΪ£ºÎÞ***********************/ -/********************Êä³öÊý¾ÝΪ£ºXXX²½/·ÖÖÓ **************/ +/********************输入数据为:无***********************/ +/********************输出数据为:XXXæ­¥/分钟 **************/ -/***********************»ñÈ¡µ±Ç°µÄÔ˶¯µÈ¼¶****************/ +/***********************获取当前的运动等级****************/ unsigned char SL_Pedo_Step_Get_Motion_Degree(void); -/********************ÊäÈëÊý¾ÝΪ£ºÎÞ***********************/ -/********************Êä³öÊý¾ÝΪ£º0-25 ********************/ +/********************输入数据为:无***********************/ +/********************输出数据为:0-25 ********************/ -/**********̧ÊÖÁÁÆÁËã·¨**********/ +/**********抬手亮屏算法**********/ -/*****************̧ÊÖÁÁÆÁËã·¨³õʼ»¯º¯Êý****************/ +/*****************抬手亮屏算法初始化函数****************/ void SL_Turn_Wrist_Init(unsigned char *SL_Turn_Wrist_Para); -/************ÊäÈë²ÎÊý£º*************/ -/******SL_Turn_Wrist_Para[0]:¼ÓËٶȼÆÌùƬλÖÃÉèÖà 0--7********/ -/******SL_Turn_Wrist_Para[1]:̧ÊÖÁÁÆÁÁéÃô¶ÈÉèÖà 1--5********/ -/******SL_Turn_Wrist_Para[2]:ˮƽ̧ÊÖÁÁÆÁʹÄÜ¿ØÖÆÎ»0--1********/ +/************输入参数:*************/ +/******SL_Turn_Wrist_Para[0]:加速度计贴片位置设置 0--7********/ +/******SL_Turn_Wrist_Para[1]:抬手亮屏灵敏度设置 1--5********/ +/******SL_Turn_Wrist_Para[2]:水平抬手亮屏使能控制位0--1********/ -/*************ÈýÖá¼ÓËٶȼÆÌùƬλÖÃÉèÖÃ*************************/ -/***SL_Turn_Wrist_Para[0]£ºÉ趨ֵµÄ·¶Î§Îª: 0 ~ 7 **************/ -/***Çë²Î¿¼Îĵµ:Silan_MEMS_ÊÖ»·Ë㷨˵Ã÷Êé_V1.1.pdf**************/ +/*************三轴加速度计贴片位置设置*************************/ +/***SL_Turn_Wrist_Para[0]:设定值的范围为: 0 ~ 7 **************/ +/***请参考文档:Silan_MEMS_手环算法说明书_V1.1.pdf**************/ -/***SL_Turn_Wrist_Para[1]:É趨ֵµÄ·¶Î§Îª: 1 ~ 5 **/ -/*********ĬÈÏֵΪ£º3 ÖеÈÁéÃô¶È****************/ -/*********É趨ֵΪ£º1 ×îµÍÁéÃô¶È****************/ -/*********ĬÈÏֵΪ£º5 ×î¸ßÁéÃô¶È****************/ -/*********É趨ֵΪ£º1(×î³Ù¶Û)~5(×îÁéÃô)***********/ +/***SL_Turn_Wrist_Para[1]:设定值的范围为: 1 ~ 5 **/ +/*********默认值为:3 中等灵敏度****************/ +/*********设定值为:1 最低灵敏度****************/ +/*********默认值为:5 最高灵敏度****************/ +/*********设定值为:1(最迟钝)~5(最灵敏)***********/ -/******SL_Turn_Wrist_Para[2]:ˮƽ̧ÊÖÁÁÆÁʹÄÜ¿ØÖÆÎ»0--1*******/ -/******0£º½ûֹˮƽ̧ÊÖ¹¦ÄÜ********/ -/******1£ºÊ¹ÄÜˮƽ̧ÊÖ¹¦ÄÜ********/ +/******SL_Turn_Wrist_Para[2]:水平抬手亮屏使能控制位0--1*******/ +/******0:禁止水平抬手功能********/ +/******1:使能水平抬手功能********/ -/*****************̧ÊÖÁÁÆÁ״̬»ñÈ¡º¯Êý****************/ +/*****************抬手亮屏状态获取函数****************/ signed char SL_Watch_Wrist_Algo(void); -/***********ÊäÈë²ÎÊý£ºÎÞ***********/ -/***********·µ»Ø²ÎÊýÇé¿ö˵Ã÷*******/ -/**Return: 2 ±¸×¢ËµÃ÷:ÆÁÄ»µãÁÁºóÐèÒª¹Ø±Õ*********/ -/**Return: 1 ±¸×¢ËµÃ÷:ÆÁÄ»ÐèÒªµãÁÁ***************/ -/**Return: 0 ±¸×¢ËµÃ÷:ÆÁÄ»²»ÐèÒªµãÁÁ*************/ -/**Return: -1 ±¸×¢ËµÃ÷:δ³õʼ»¯»ò³õʼ»¯Ê§°Ü*******/ - -/*****************̧ÊÖÁÁÆÁ״̬¸´Î»********************/ +/***********输入参数:无***********/ +/***********返回参数情况说明*******/ +/**Return: 2 备注说明:屏幕点亮后需要关闭*********/ +/**Return: 1 备注说明:屏幕需要点亮***************/ +/**Return: 0 备注说明:屏幕不需要点亮*************/ +/**Return: -1 备注说明:未初始化或初始化失败*******/ + +/*****************抬手亮屏状态复位********************/ //void SL_Turn_Wrist_WorkMode_Reset(void); -/******************ÊäÈë²ÎÊý£ºÎÞ***********************/ -/******************Êä³öÖµ²ÎÊý£ºÎÞ*********************/ +/******************输入参数:无***********************/ +/******************输出值参数:无*********************/ //3-12 //1-10 //0-10 -/******************˯Ãß²ÎÊýÉèÖÃ********************/ +/******************睡眠参数设置********************/ void SL_Sleep_Para(unsigned char adom_time_th,unsigned char sleep_vpp_th,unsigned char sleep_time_th); -/**************************Åå´÷¼ì²âµÄʱ³¤***********************/ +/**************************佩戴检测的时长***********************/ /******adom_time_th:0-255 min***********************************/ -/******adom_time_th:δ»î¶¯µÄʱ¼ä£¬´óÓÚÉèÖÃãÐÖµ²ÅÄÜÈÏΪδÅå´÷****/ -/******adom_time_th:ÉèÖÃֵԽС£¬Ô½ÈÝÒ׳öÏÖδÅå´÷Çé¿ö************/ +/******adom_time_th:未活动的时间,大于设置阈值才能认为未佩戴****/ +/******adom_time_th:设置值越小,越容易出现未佩戴情况************/ -/**************************˯ÃßÖмäµããÐÖµ***********************/ -/******sleep_vpp_th:ԽСÁéÃô¶ÈÔ½¸ß£¬Ô½ÈÝÒ×˯Ãß״̬Çл»**********/ -/******sleep_vpp_th:Ô½´óÁéÃô¶ÈÔ½µÍ£¬Ô½ÄÑ˯Ãß״̬Çл»************/ -/******sleep_vpp_th:ĬÈÏÖµ10£¬²»ÉèÖþÍÊÇ10**********************/ +/**************************睡眠中间点阈值***********************/ +/******sleep_vpp_th:越小灵敏度越高,越容易睡眠状态切换**********/ +/******sleep_vpp_th:越大灵敏度越低,越难睡眠状态切换************/ +/******sleep_vpp_th:默认值10,不设置就是10**********************/ -/**************************״̬Çл»×îСʱ¼ä*********************/ -/******sleep_time_th:¸ÃֵԽС£¬Ë¯Ãß״̬Çл»µÄËùÐèʱ¼ä¾ÍÔ½¶Ì*****/ -/******sleep_time_th:¸ÃÖµÔ½´ó£¬Ë¯Ãß״̬Çл»µÄËùÐèʱ¼ä¾ÍÔ½³¤*****/ -/******sleep_time_th:ĬÈÏÖµ1£¬²»ÉèÖþÍÊÇ1***********************/ +/**************************状态切换最小时间*********************/ +/******sleep_time_th:该值越小,睡眠状态切换的所需时间就越短*****/ +/******sleep_time_th:该值越大,睡眠状态切换的所需时间就越长*****/ +/******sleep_time_th:默认值1,不设置就是1***********************/ -/***************»ñÈ¡µ±Ç°µÄ˯Ãß״̬*****************/ +/***************获取当前的睡眠状态*****************/ unsigned char SL_Sleep_GetStatus(unsigned char SL_Sys_Time); -/*******SL_Sys_Time£ºµ±Ç°µÄʱ¼ä£¬ÒÔСʱΪµ¥Î»******/ -/*******È«ÌìµÄÊäÈëʱ¼ä·¶Î§Îª£º0-23 ****************/ -/***************Êä³öÊý¾Ý·¶Î§£º0-7******************/ -/***************0£ºÇåÐÑ״̬************************/ -/***************7£ºÉî¶È˯Ãß************************/ +/*******SL_Sys_Time:当前的时间,以小时为单位******/ +/*******全天的输入时间范围为:0-23 ****************/ +/***************输出数据范围:0-7******************/ +/***************0:清醒状态************************/ +/***************7:深度睡眠************************/ -/***************»ñÈ¡µ±Ç°µÄ»î¶¯µÈ¼¶*****************/ +/***************获取当前的活动等级*****************/ unsigned char SL_Sleep_Active_Degree(unsigned char mode); -/***************mode£º0 ¶¨Ê±Æ÷0.5sÖе÷ÓÃ***********/ -/***************mode£º1 ¶¨Ê±Æ÷1minÖе÷ÓÃ***********/ -/***************Êä³öÊý¾Ý·¶Î§£º0-255****************/ -/***************0£º¾²Ö¹****************************/ -/*************255£ºÔ˶¯****************************/ +/***************mode:0 定时器0.5s中调用***********/ +/***************mode:1 定时器1min中调用***********/ +/***************输出数据范围:0-255****************/ +/***************0:静止****************************/ +/*************255:运动****************************/ unsigned char SL_Sleep_Get_Active_Degree(void); -/***************mode£º0 ¶¨Ê±Æ÷0.5sÖе÷ÓÃ***********/ -/***************mode£º1 ¶¨Ê±Æ÷1minÖе÷ÓÃ***********/ -/***************Êä³öÊý¾Ý·¶Î§£º0-255****************/ -/***************0£º¾²Ö¹****************************/ -/*************255£ºÔ˶¯****************************/ +/***************mode:0 定时器0.5s中调用***********/ +/***************mode:1 定时器1min中调用***********/ +/***************输出数据范围:0-255****************/ +/***************0:静止****************************/ +/*************255:运动****************************/ -/***************»ñÈ¡µ±Ç°µÄÅå´÷µÄÇé¿ö***************/ +/***************获取当前的佩戴的情况***************/ unsigned char SL_Adom_GetStatus(void); -/***************0£ºÎ´Åå´÷**************************/ -/***************1£ºÒÑÅå´÷**************************/ +/***************0:未佩戴**************************/ +/***************1:已佩戴**************************/ -/***************»ñÈ¡µ±Ç°µÄÅå´÷µÄÇé¿ö***************/ +/***************获取当前的佩戴的情况***************/ unsigned char SL_In_Sleep_Status(void); -/***************0£ºout sleep**********************/ -/***************1£ºin sleep***********************/ +/***************0:out sleep**********************/ +/***************1:in sleep***********************/ -/**************************·­×ª¹¦ÄÜ************************/ +/**************************翻转功能************************/ bool SL_Get_Clock_Status(bool open_close); -/***********ÊäÈë²ÎÊý£ºsensor_pos***********/ -/****sensor_pos:1 open ¼ì²âÊÇ·ñÒª¹Ø±ÕʱÊäÈë 1*************/ -/****sensor_pos:0 close ¹Ø±ÕÄÖÁåʱʱ ÊäÈë 0*************/ -/*********************·µ»Ø²ÎÊýÇé¿ö˵Ã÷*********************/ -/***********************·­×ª¹¦Äܼì²â***********************/ -/**Return: 1 ±¸×¢ËµÃ÷:ÆÁÄ»ÒÑ·­×ª£¬¹Ø±ÕÄÖÖÓ************/ -/**Return: 0 ±¸×¢ËµÃ÷:ÆÁĻδ·­×ª£¬²»¹Ø±ÕÄÖÖÓ**********/ +/***********输入参数:sensor_pos***********/ +/****sensor_pos:1 open 检测是否要关闭时输入 1*************/ +/****sensor_pos:0 close 关闭闹铃时时 输入 0*************/ +/*********************返回参数情况说明*********************/ +/***********************翻转功能检测***********************/ +/**Return: 1 备注说明:屏幕已翻转,关闭闹钟************/ +/**Return: 0 备注说明:屏幕未翻转,不关闭闹钟**********/ -/**************************Ò¡»Î¹¦ÄÜ************************/ +/**************************摇晃功能************************/ bool SL_Get_Phone_Answer_Status(unsigned char Sway_Degree,unsigned char Sway_Num); -/***********ÊäÈë²ÎÊý£ºÒ¡»ÎµÈ¼¶0--10 Ò¡»ÎÊýÁ¿0--10***********************/ -/***Ò¡»ÎµÈ¼¶£ºÉèÖÃֵԽС£¬ÐèÒªÒ¡»ÎµÄ·ù¶ÈԽС£¬Ô½ÈÝÒ×´¥·¢½ÓÌý¶¯×÷*********/ -/***Ò¡»ÎÊýÁ¿£ºÉèÖÃֵԽС£¬ÐèÒªÒ¡»ÎµÄ´ÎÊýÔ½ÉÙ£¬Ô½ÈÝÒ×´¥·¢½ÓÌý¶¯×÷*********/ -/***********·µ»Ø²ÎÊýÇé¿ö˵Ã÷*******************************/ -/**Return: 1 ±¸×¢ËµÃ÷:Ò¡»Î¶¯×÷³ÉÁ¢£¬½ÓÌýµç»°**********/ -/**Return: 0 ±¸×¢ËµÃ÷:Ò¡»Î¶¯×÷²»³ÉÁ¢£¬²»½ÓÌýµç»°******/ +/***********输入参数:摇晃等级0--10 摇晃数量0--10***********************/ +/***摇晃等级:设置值越小,需要摇晃的幅度越小,越容易触发接听动作*********/ +/***摇晃数量:设置值越小,需要摇晃的次数越少,越容易触发接听动作*********/ +/***********返回参数情况说明*******************************/ +/**Return: 1 备注说明:摇晃动作成立,接听电话**********/ +/**Return: 0 备注说明:摇晃动作不成立,不接听电话******/ -/************¼Ó²âÏîÄ¿¿Í»§¶Ë²âÊÔ***********/ -/***³õʼ»¯µÄʱºòµ÷ÓÃÓÃÓÚÅжÏFIFOÊÇ·ñÕý³£**/ +/************加测项目客户端测试***********/ +/***初始化的时候调用用于判断FIFO是否正常**/ bool SL_SC7A20_FIFO_TEST(void); -/*************ÊäÈë²ÎÊý:ÎÞ*****************/ -/*************·µ»ØÊý¾ÝÇé¿öÈçÏÂ************/ -/**return :1 FIFO Òì³£*******************/ -/**return :0 FIFO Õý³£*******************/ +/*************输入参数:无*****************/ +/*************返回数据情况如下************/ +/**return :1 FIFO 异常*******************/ +/**return :0 FIFO 正常*******************/ #endif/****SL_Watch_ALGO_DRV__H__*********/ diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modGsensor_SC7A20.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modGsensor_SC7A20.c index 9c87f324..ee6e9311 100644 --- a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modGsensor_SC7A20.c +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modGsensor_SC7A20.c @@ -240,7 +240,7 @@ void Gsensor_CALLBACK_OP(uint8_t state) } #define FALL_DETECH_LOW_THRESHOLD 40 -#define FALL_COUNTER_THRESHOLD 6 +#define FALL_COUNTER_THRESHOLD 8 static uint16_t fall_counter = 0; uint8_t gsensor_sc7a20_fall_detect(acc_g_data_t * acc) { diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py index 98728da8..404efffe 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py @@ -153,21 +153,23 @@ class WechatScreen(Screen): self.wechat_list.set_size(240, 261) self.wechat_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) self.wechat_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) - + self.wechat_list.set_flex_flow(lv.FLEX_FLOW.COLUMN)#自动排成一列对齐 #建立控件 self.wechat_list_dict = [] for i in range(self.MXA_MSG): - wechat_btn = lv.btn(self.wechat_list) + wechat_obj = lv.obj(self.wechat_list) + wechat_obj.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) + wechat_btn = lv.btn(wechat_obj) wechat_btn.add_style(style_wechat_s_btn, lv.PART.MAIN | lv.STATE.DEFAULT) _btn_label1 = lv.label(wechat_btn) _btn_label1.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT) _btn_label2 = lv.label(wechat_btn) _btn_img = lv.img(wechat_btn) - wechat_btn.add_flag(lv.obj.FLAG.HIDDEN) + wechat_obj.add_flag(lv.obj.FLAG.HIDDEN) wechat_btn.add_flag(lv.obj.FLAG.CLICKABLE) wechat_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.play_label_cb(e)), lv.EVENT.CLICKED, None) - self.wechat_list_dict.append({"num":i,"wechat_btn":wechat_btn,"_btn_label1":_btn_label1,"_btn_label2":_btn_label2,"_btn_img":_btn_img}) + self.wechat_list_dict.append({"num":i,"wechat_obj":wechat_obj,"wechat_btn":wechat_btn,"_btn_label1":_btn_label1,"_btn_label2":_btn_label2,"_btn_img":_btn_img}) EventMesh.subscribe("wechat_updata_list_show", self.wechat_updata_list_show) EventMesh.subscribe("get_wechat_data", self.get_wechat_data) @@ -276,7 +278,7 @@ class WechatScreen(Screen): j = 1 key = "%02d"%(j) if j > len(self.wechat_recode_list) -1: - self.wechat_list_dict[i]["wechat_btn"].add_flag(lv.obj.FLAG.HIDDEN) + self.wechat_list_dict[i]["wechat_obj"].add_flag(lv.obj.FLAG.HIDDEN) continue j+=1 @@ -296,19 +298,19 @@ class WechatScreen(Screen): #wechat_btn = lv.btn(self.wechat_list) # if value.find("R:") != -1:self.wechat_list_dict[i] - + self.wechat_list_dict[i]["wechat_obj"].set_size(240,lv.SIZE.CONTENT) if value.find("R:") != -1 or value.find("T:") != -1 :#显示文字: if value.find("T:") != -1: - self.wechat_list_dict[i]["wechat_btn"].set_size(self.startWidth,62) + self.wechat_list_dict[i]["wechat_btn"].set_size(self.startWidth,lv.SIZE.CONTENT) else: self.wechat_list_dict[i]["wechat_btn"].set_size(self.startWidth,62) - self.wechat_list_dict[i]["wechat_btn"].set_pos(10,self.startY ) + self.wechat_list_dict[i]["wechat_btn"].set_pos(10,0 ) #self.wechat_list_dict[i]["wechat_btn"].add_style(style_wechat_s_btn, lv.PART.MAIN | lv.STATE.DEFAULT) self.wechat_list_dict[i]["wechat_btn"].set_style_bg_color(lv.color_make(0xff, 0xff, 0xff), lv.PART.MAIN | lv.STATE.DEFAULT) elif value.find("S:") != -1 : self.wechat_list_dict[i]["wechat_btn"].set_size(self.startWidth,62) - self.wechat_list_dict[i]["wechat_btn"].set_pos(230-self.startWidth,self.startY ) + self.wechat_list_dict[i]["wechat_btn"].set_pos(230-self.startWidth,0 ) #for k in range(100): #self.wechat_list_dict[i]["wechat_btn"].add_style(style_wechat_r_btn, lv.PART.MAIN | lv.STATE.DEFAULT) self.wechat_list_dict[i]["wechat_btn"].set_style_bg_color(lv.color_make(0x00, 0xff, 0x2a), lv.PART.MAIN | lv.STATE.DEFAULT) @@ -324,10 +326,13 @@ class WechatScreen(Screen): self.wechat_list_dict[i]["_btn_label1"].set_pos(self.startWidth-78, 18) self.wechat_list_dict[i]["_btn_label1"].set_text(str(self.msg_tmp)+'\"') elif value.find("T:") != -1: - self.wechat_list_dict[i]["_btn_label1"].set_size(216, 66) + self.wechat_list_dict[i]["_btn_label1"].set_size(216, lv.SIZE.CONTENT) self.wechat_list_dict[i]["_btn_label1"].set_pos(0, 0) + print("self.msg_tmp:{}".format(self.msg_tmp)) + self.msg_tmp = self.msg_tmp.replace(':',':\n',1) + print("self.msg_tmp:{}".format(self.msg_tmp)) self.wechat_list_dict[i]["_btn_label1"].set_text(str(self.msg_tmp)) - self.wechat_list_dict[i]["_btn_label1"].set_long_mode(lv.label.LONG.DOT) + self.wechat_list_dict[i]["_btn_label1"].set_long_mode(lv.label.LONG.WRAP) #self.wechat_list_dict[i]["_btn_label1"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT) #_btn_label2 = lv.label(wechat_btn) self.wechat_list_dict[i]["_btn_label2"].set_size(0, 0) @@ -350,10 +355,10 @@ class WechatScreen(Screen): self.wechat_list_dict[i]["_btn_img"].clear_flag(lv.obj.FLAG.HIDDEN) else : self.wechat_list_dict[i]["_btn_img"].add_flag(lv.obj.FLAG.HIDDEN) - self.wechat_list_dict[i]["wechat_btn"].clear_flag(lv.obj.FLAG.HIDDEN) + self.wechat_list_dict[i]["wechat_obj"].clear_flag(lv.obj.FLAG.HIDDEN) wechat_btn_end = i - self.wechat_list_dict[wechat_btn_end]["wechat_btn"].scroll_to_view(lv.ANIM.OFF) + self.wechat_list_dict[wechat_btn_end]["wechat_obj"].scroll_to_view(lv.ANIM.OFF) # bottom_btn1 = self.wechat_list.get_child(-1) # bottom_btn1.scroll_to_view(lv.ANIM.ON)