flash_read(CONFIG_SAVE_ADDR,sizeof(sys_config),(uint8_t *)&sys_config);
//co_printf("init_sys_config:config_flag:0x%x\n",sys_config.config_flag);
- if(sys_config.config_flag != 0xaa)//第一次开机,执行初始化
+ if(sys_config.config_flag != 0xaa || sys_config.end_config_flag != 0xaa)//第一次开机,执行初始化
{
co_printf("init_sys_config:init config_flag\n");
sys_config.config_flag = 0xaa;
+ sys_config.end_config_flag = 0xaa;
memset(sys_config.HA_key_code,0,sizeof(sys_config.HA_key_code));
memset(sys_config.HA_req_code,0,sizeof(sys_config.HA_req_code));
memset(sys_config.IMEI,0,sizeof(sys_config.IMEI));
+ memset(&sys_config.dev9202_wear_data,0,sizeof(sys_config.dev9202_wear_data));
+ sys_config.dev9202_wear_data.BIO_HOLD_DROP_FLAG = 2;
save_sys_config();
}
}
// gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 0); //中断信号使能 低电平
// co_delay_100us(2);
}
+extern VC9202WearChangeTypeDef vc9202_drv_wear_status_identify(VC9202WearInfoTypeDef *pwear, unsigned char env, unsigned char ps, unsigned short int bio);
void sensor_init(void)
{
gsensor_init();//gsensor初始化
NVIC_EnableIRQ(PMU_IRQn);
vc9202_alg_results.wear_status = 1;
+ set_dev9202_wear_data(sys_config.dev9202_wear_data);//设置佩戴校准参数
pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //心率使能 防止漏电
pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //血压失能
//测试代码
__attribute__((weak)) void adc_set_ref_voltage(uint16_t ref_avdd, uint16_t ref_internal)
{
}
-
+__attribute__((weak)) __attribute__((section("ram_code"))) void i2s_isr_ram(void)
+{
+ volatile uint32_t data;
+
+ // if(i2s_reg->status.rx_half_full) {
+ // for(uint32_t i=0; i<(I2S_FIFO_DEPTH/2); i++) {
+ // data = i2s_reg->data;
+ // }
+ // }
+
+ // if(i2s_reg->status.tx_half_empty) {
+ // for(uint32_t i=0; i<(I2S_FIFO_DEPTH/2); i++) {
+ // i2s_reg->data = 0;
+ // }
+ // }
+}
__attribute__((section("ram_code"))) void pmu_isr_ram_C(unsigned int* hardfault_args)
{
uint16_t clr_bits=0;
{
//co_printf("%04x", ool_read16(PMU_REG_QDEC_CNTA_VALUE));
clr_bits |= PMU_ISR_QDEC_CLR;
- qdec_isr_ram();
+ //qdec_isr_ram();
}
if(clr_bits)
<flags>0</flags>
<showCmd>1</showCmd>
<MinPosition>
- <xPos>-1</xPos>
- <yPos>-1</yPos>
+ <xPos>-32000</xPos>
+ <yPos>-32000</yPos>
</MinPosition>
<MaxPosition>
<xPos>-1</xPos>
<yPos>-1</yPos>
</MaxPosition>
<NormalPosition>
- <Top>112</Top>
- <Left>442</Left>
- <Right>1809</Right>
- <Bottom>1023</Bottom>
+ <Top>180</Top>
+ <Left>362</Left>
+ <Right>1729</Right>
+ <Bottom>1091</Bottom>
</NormalPosition>
</WindowPosition>
<MDIClientArea>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
- <Data>1C00000023010000B8040000B1010000</Data>
+ <Data>F7020000A60000009307000034010000</Data>
</RectRecentFloat>
</Window>
<Window>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03000000660000004A0100007A020000</Data>
+ <Data>0300000066000000D00100007A020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03000000660000004A0100007A020000</Data>
+ <Data>0300000066000000D00100007A020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03000000660000004A0100007A020000</Data>
+ <Data>0300000066000000D00100007A020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
- <Data>03000000660000004A0100007A020000</Data>
+ <Data>0300000066000000D00100007A020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
</Window>
<DockMan>
<Len>3312</Len>
- <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000001C00000023010000B8040000B1010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000C803000023010000B8040000F9020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF4D0100004F0000005101000093020000010000000200001004000000010000006DFEFFFF4D030000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000028FFFFFF230100007500000067030000000000004F0000004D010000930200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000028FFFFFFE9020000B80400008B030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000930200004705000097020000010000000100001004000000010000007FFDFFFF8C000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000028FFFFFF6B0300006F04000029040000000000009702000047050000550300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
+ <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F7020000A60000009307000034010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A3060000A6000000930700007C020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD30100004F000000D70100009302000001000000020000100400000001000000B5FEFFFFF1030000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000003020000A600000050030000EA020000000000004F000000D3010000930200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000030200006C020000930700000E030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000930200004705000097020000010000000100001004000000010000007FFDFFFF8C000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000003020000EE0200004A070000AC030000000000009702000047050000550300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
</DockMan>
<ToolBar>
<RegID>59392</RegID>
<Name>File</Name>
<Buttons>
- <Len>2940</Len>
- <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000040000000000000000000000000000000000000100000001000000960000000200205000000000166F735F74696D65725F434D445F7570646174655F636296000000000000001400166F735F74696D65725F434D445F7570646174655F6362036D61630E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
+ <Len>2939</Len>
+ <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000040000000000000000000000000000000000000100000001000000960000000200205000000000166F735F74696D65725F434D445F7570646174655F63629600000000000000140009636F5F7072696E7466166F735F74696D65725F434D445F7570646174655F6362036D61630E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000</Data>
</Buttons>
<OriginalItems>
<Len>1423</Len>
<Name>Build</Name>
<Buttons>
<Len>976</Len>
- <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008626C655F6D6573689600000000000000010008626C655F6D657368000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
+ <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008626C655F6D6573689600000000000000010008626C655F6D657368000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
</Buttons>
<OriginalItems>
<Len>583</Len>
<Group>
<GroupName>driver</GroupName>
- <tvExp>0</tvExp>
+ <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
- <PathWithFileName>..\components\driver\driver_i2s.c</PathWithFileName>
- <FilenameWithoutPath>driver_i2s.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>6</GroupNumber>
- <FileNumber>21</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
<PathWithFileName>..\components\driver\driver_iic.c</PathWithFileName>
<FilenameWithoutPath>driver_iic.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
</File>
<File>
<GroupNumber>6</GroupNumber>
- <FileNumber>22</FileNumber>
+ <FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>6</GroupNumber>
- <FileNumber>23</FileNumber>
+ <FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>6</GroupNumber>
- <FileNumber>24</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>..\components\driver\driver_pmu_qdec.c</PathWithFileName>
- <FilenameWithoutPath>driver_pmu_qdec.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>6</GroupNumber>
- <FileNumber>25</FileNumber>
+ <FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>6</GroupNumber>
- <FileNumber>26</FileNumber>
+ <FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>6</GroupNumber>
- <FileNumber>27</FileNumber>
+ <FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>6</GroupNumber>
- <FileNumber>28</FileNumber>
+ <FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>6</GroupNumber>
- <FileNumber>29</FileNumber>
+ <FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
- <FileNumber>30</FileNumber>
+ <FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>7</GroupNumber>
- <FileNumber>31</FileNumber>
+ <FileNumber>29</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>32</FileNumber>
+ <FileNumber>30</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>33</FileNumber>
+ <FileNumber>31</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>34</FileNumber>
+ <FileNumber>32</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>35</FileNumber>
+ <FileNumber>33</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>36</FileNumber>
+ <FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>37</FileNumber>
+ <FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>38</FileNumber>
+ <FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>39</FileNumber>
+ <FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
</File>
<File>
<GroupNumber>8</GroupNumber>
- <FileNumber>40</FileNumber>
+ <FileNumber>38</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<FileType>1</FileType>
<FilePath>..\components\driver\driver_exti.c</FilePath>
</File>
- <File>
- <FileName>driver_i2s.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\components\driver\driver_i2s.c</FilePath>
- </File>
<File>
<FileName>driver_iic.c</FileName>
<FileType>1</FileType>
<FileType>1</FileType>
<FilePath>..\components\driver\driver_pmu.c</FilePath>
</File>
- <File>
- <FileName>driver_pmu_qdec.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\components\driver\driver_pmu_qdec.c</FilePath>
- </File>
<File>
<FileName>driver_rtc.c</FileName>
<FileType>1</FileType>
***************************************************************************/
#define VC9202_CFG_WEAR_DETECTION (FUNC_ENABLE) // FUNC_DISABLE FUNC_ENABLE
#define VC9202_CFG_WEAR_DEFAULT_STATUS (WEAR_IS_HOLD) //1 is default wear,0 is default not wear WEAR_IS_HOLD WEAR_IS_DROP
-#define VC9202_CFG_WEAR_BIO_EN (FUNC_DISABLE)
+#define VC9202_CFG_WEAR_BIO_EN (FUNC_ENABLE)
#define VC9202_CFG_WEAR_ALG_EN (FUNC_DISABLE) //开启心率摘下功能,必须开启满足(ATC|BIO)为真
#define VC9202_CFG_WEAR_ACT_EN (FUNC_DISABLE)
#define VC9202_CFG_WEAR_THRESHOLD_EN (FUNC_ENABLE) //绝对阈值宏开关
#define VC9202_CFG_WEAR_PARAM_PSIN (100)
#define VC9202_CFG_WEAR_PARAM_ENVMAX (128) //8*16
#define VC9202_CFG_WEAR_PARAM_ENVMIN (64) //4*16
-#define VC9202_CFG_WEAR_PARAM_BIOIN (40)
-
+//#define VC9202_CFG_WEAR_PARAM_BIOIN (40)
+extern unsigned char VC9202_CFG_WEAR_PARAM_BIOIN;
#define VC9202_CFG_PS_SLOT_CUR (0x3A) /* 0x5A */
#define VC9202_CFG_PS_SLOT_RES (0x47)
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
+#include "uart.h"
+unsigned char VC9202_CFG_WEAR_PARAM_BIOIN =30;
/* static wear status declaration */
static int bio_result = VC9202_BIO_STA_NONE;
static WearStatusTypeDef alg_wear_status = WEAR_STA_HOLD;
static unsigned int gsnesor_axis_diff = 0;
-static VC9202WearInfoTypeDef dev9202_wear = {0};
+VC9202WearInfoTypeDef dev9202_wear = {0};
/* static adjust data declaration */
static VC9202AdjustSlotTypeDef dev9202_adjust[3] = {0};
static unsigned char ppg_mark[128 / 2] = {0};
ps_value ps采样值
* @retval bio结果
*/
-static int vc9202_drv_calc_biology_sense(unsigned short int bio_value, unsigned char ps_value, unsigned char env)
+static unsigned char calc_ps = 0;
+static unsigned short int calc_bio = 0;
+int Bio_Diff_Value = 0;
+int vc9202_drv_calc_biology_sense(unsigned short int bio_value, unsigned char ps_value, unsigned char env)
{
- static unsigned char calc_ps = 0;
- static unsigned short int calc_bio = 0;
- static int Bio_Diff_Value = 0;
- int ret = 0;
+
+ //int ret = 0;
+ //
+ // if (bio_value)
+ // {
+ // calc_bio = bio_value;
+ // Bio_Diff_Value = abs(Bio_Old_Value - calc_bio);
+ // Bio_Old_Value = calc_bio;
+ // }
+ // if (ps_value)
+ // {
+ // calc_ps = ps_value;
+ // }
+ // if ((calc_ps < 100) && (env > 4))
+ // {
+ // if (Bio_Diff_Value < VC9202_CFG_WEAR_PARAM_BIOIN * 0.2)
+ // {
+ // Bio_Max_Value = calc_bio;
+ // Bio_Max_Diff_Value = Bio_Max_Value - (VC9202_CFG_WEAR_PARAM_BIOIN * 0.8);
+ // Bio_Min_Diff_Value = Bio_Max_Value - (VC9202_CFG_WEAR_PARAM_BIOIN * 1.5);
+ // }
+ // }
+ // if (Bio_Max_Diff_Value)
+ // {
+ // if ((calc_bio > Bio_Max_Diff_Value) && (Bio_Diff_Value < VC9202_CFG_WEAR_PARAM_BIOIN * 0.2))
+ // {
+ // Bio_HOLD_cnt++;
+ // if (Bio_HOLD_cnt > 4)
+ // {
+ // BIO_HOLD_DROP_FLAG = 1;
+ // }
+ // }
+ // else if (calc_bio < Bio_Min_Diff_Value)
+ // {
+ // Bio_cnt++;
+ // if (Bio_cnt > 2)
+ // {
+ // BIO_HOLD_DROP_FLAG = 2;
+ // }
+ // }
+ // else
+ // {
+ // Bio_cnt = 0;
+ // Bio_HOLD_cnt = 0;
+ // BIO_HOLD_DROP_FLAG = 0;
+ // }
+ // }
+ // ret = f_BIOdetect(calc_bio, calc_ps, VC9202_CFG_WEAR_PARAM_PS);
+ // if (VC9202_BIO_STA_HOLD == ret)
+ // {
+ // vc9202_drv_set_algo_wear_status(WEAR_STA_HOLD); /* bio */
+ // bio_result = VC9202_BIO_STA_HOLD;
+ // }
+ // else if (VC9202_BIO_STA_DROP == ret)
+ // {
+ // bio_result = VC9202_BIO_STA_DROP;
+ // }
if (bio_value)
{
- calc_bio = bio_value;
- Bio_Diff_Value = abs(Bio_Old_Value - calc_bio);
- Bio_Old_Value = calc_bio;
- }
- if (ps_value)
- {
- calc_ps = ps_value;
- }
- if ((calc_ps < 100) && (env > 4))
- {
- if (Bio_Diff_Value < VC9202_CFG_WEAR_PARAM_BIOIN * 0.2)
- {
- Bio_Max_Value = calc_bio;
- Bio_Max_Diff_Value = Bio_Max_Value - (VC9202_CFG_WEAR_PARAM_BIOIN * 0.8);
- Bio_Min_Diff_Value = Bio_Max_Value - (VC9202_CFG_WEAR_PARAM_BIOIN * 1.5);
- }
- }
- if (Bio_Max_Diff_Value)
- {
- if ((calc_bio > Bio_Max_Diff_Value) && (Bio_Diff_Value < VC9202_CFG_WEAR_PARAM_BIOIN * 0.2))
- {
- Bio_HOLD_cnt++;
- if (Bio_HOLD_cnt > 4)
- {
- BIO_HOLD_DROP_FLAG = 1;
- }
- }
- else if (calc_bio < Bio_Min_Diff_Value)
- {
- Bio_cnt++;
- if (Bio_cnt > 2)
- {
- BIO_HOLD_DROP_FLAG = 2;
- }
- }
- else
- {
- Bio_cnt = 0;
- Bio_HOLD_cnt = 0;
- BIO_HOLD_DROP_FLAG = 0;
- }
+ Bio_Diff_Value = abs(sys_config.dev9202_wear_data.calc_bio - bio_value);
}
- ret = f_BIOdetect(calc_bio, calc_ps, VC9202_CFG_WEAR_PARAM_PS);
- if (VC9202_BIO_STA_HOLD == ret)
+ if (Bio_Diff_Value/2 > VC9202_CFG_WEAR_PARAM_BIOIN)
{
vc9202_drv_set_algo_wear_status(WEAR_STA_HOLD); /* bio */
bio_result = VC9202_BIO_STA_HOLD;
}
- else if (VC9202_BIO_STA_DROP == ret)
+ else
{
bio_result = VC9202_BIO_STA_DROP;
}
+ co_printf("vc9202_drv_calc_biology_sense calc_bio:%d,bio_value:%d,Bio_Diff_Value:%d,enable_bio:%d!! \n\r",
+ sys_config.dev9202_wear_data.calc_bio,bio_value,Bio_Diff_Value,dev9202_info.enable_bio);
return bio_result;
}
+void get_dev9202_wear_data(VC9202WearCalibratorData *dev9202_wear_data)
+{
+ // unsigned char calc_ps ;
+ // unsigned short int calc_bio ;
+ // int Bio_Diff_Value ;
+ // int Bio_Max_Value ;
+ // int Bio_Max_Diff_Value ;
+ // int Bio_Min_Diff_Value ;
+ // int Bio_Old_Value ;
+ // uint8_t Bio_cnt ;
+ // uint8_t Bio_HOLD_cnt ;
+ // uint8_t BIO_HOLD_DROP_FLAG;
+ dev9202_wear_data->calc_ps = calc_ps;
+ dev9202_wear_data->calc_bio = calc_bio;
+ dev9202_wear_data->Bio_Diff_Value = Bio_Diff_Value;
+ dev9202_wear_data->Bio_Max_Value = Bio_Max_Value;
+ dev9202_wear_data->Bio_Max_Diff_Value = Bio_Max_Diff_Value;
+ dev9202_wear_data->Bio_Min_Diff_Value = Bio_Min_Diff_Value;
+ dev9202_wear_data->Bio_Old_Value = Bio_Old_Value;
+ dev9202_wear_data->Bio_cnt = Bio_cnt;
+ dev9202_wear_data->Bio_HOLD_cnt = Bio_HOLD_cnt;
+ dev9202_wear_data->BIO_HOLD_DROP_FLAG = BIO_HOLD_DROP_FLAG;
+ // co_printf("get_dev9202_wear_data:\r\ncalc_ps:%d,calc_bio:%d,Bio_Diff_Value:%d,Bio_Max_Value:%d\r\n",calc_ps,calc_bio,Bio_Diff_Value,Bio_Max_Value);
+ // co_printf("Bio_Max_Diff_Value:%d,Bio_Min_Diff_Value:%d,Bio_Old_Value:%d,Bio_cnt:%d\r\n",Bio_Max_Diff_Value,Bio_Min_Diff_Value,Bio_Old_Value,Bio_cnt);
+ // co_printf("Bio_HOLD_cnt:%d,BIO_HOLD_DROP_FLAG:%d\r\n",Bio_HOLD_cnt,BIO_HOLD_DROP_FLAG);
+}
+void set_dev9202_wear_data(VC9202WearCalibratorData dev9202_wear_data)
+{
+
+ calc_ps = dev9202_wear_data.calc_ps ;
+ calc_bio = dev9202_wear_data.calc_bio ;
+ Bio_Diff_Value = dev9202_wear_data.Bio_Diff_Value ;
+ Bio_Max_Value = dev9202_wear_data.Bio_Max_Value;
+ Bio_Max_Diff_Value = dev9202_wear_data.Bio_Max_Diff_Value ;
+ Bio_Min_Diff_Value = dev9202_wear_data.Bio_Min_Diff_Value;
+ Bio_Old_Value = dev9202_wear_data.Bio_Old_Value ;
+ Bio_cnt = dev9202_wear_data.Bio_cnt;
+ Bio_HOLD_cnt = dev9202_wear_data.Bio_HOLD_cnt ;
+ BIO_HOLD_DROP_FLAG = dev9202_wear_data.BIO_HOLD_DROP_FLAG;
+ // co_printf("set_dev9202_wear_data:\r\ncalc_ps:%d,calc_bio:%d,Bio_Diff_Value:%d,Bio_Max_Value:%d\r\n",calc_ps,calc_bio,Bio_Diff_Value,Bio_Max_Value);
+ // co_printf("Bio_Max_Diff_Value:%d,Bio_Min_Diff_Value:%d,Bio_Old_Value:%d,Bio_cnt:%d\r\n",Bio_Max_Diff_Value,Bio_Min_Diff_Value,Bio_Old_Value,Bio_cnt);
+ // co_printf("Bio_HOLD_cnt:%d,BIO_HOLD_DROP_FLAG:%d\r\n",Bio_HOLD_cnt,BIO_HOLD_DROP_FLAG);
+}
/**
* @brief 佩戴检测过程及状态
* @param *pwear-佩戴结构体,env-环境光,ps-ps值,bio-活体值
* @retval 识别改变结果
*/
-static VC9202WearChangeTypeDef vc9202_drv_wear_status_identify(VC9202WearInfoTypeDef *pwear, unsigned char env, unsigned char ps, unsigned short int bio)
+VC9202WearChangeTypeDef vc9202_drv_wear_status_identify(VC9202WearInfoTypeDef *pwear, unsigned char env, unsigned char ps, unsigned short int bio)
{
VC9202WearChangeTypeDef ret_change = WEAR_NO_CHANGE;
int ret_bio_algo = VC9202_BIO_STA_NONE;
unsigned short biovalue_now[2];
unsigned short biovalue_gap[2];
} VC9202TestInfoTypeDef;
-
+//做校准,每次开机用这个参数
+typedef struct
+{
+ unsigned char calc_ps ;
+ unsigned short int calc_bio ;
+ int Bio_Diff_Value ;
+ int Bio_Max_Value ;
+ int Bio_Max_Diff_Value ;
+ int Bio_Min_Diff_Value ;
+ int Bio_Old_Value ;
+ uint8_t Bio_cnt ;
+ uint8_t Bio_HOLD_cnt ;
+ uint8_t BIO_HOLD_DROP_FLAG;
+} VC9202WearCalibratorData;
+void set_dev9202_wear_data(VC9202WearCalibratorData dev9202_wear_data);
+void get_dev9202_wear_data(VC9202WearCalibratorData *dev9202_wear_data);
#endif
{
unsigned char sta = 0;
WearStatusTypeDef retSta = vc9202_drv_get_wear_status();
+ co_printf("vc9202_usr_get_wear_status retSta:%d!! \n\r",retSta);
if( WEAR_STA_DROP == retSta )
{
sta = 0;
// /* compare abs(bio0,bio1) */
// unsigned short int bio0 = pdata->bio_val_o;
// unsigned short int bio1 = pdata->bio_val_o;
+ static int count = 0;
+ static short int bio1 = 0;
+
+ count ++;
+ if(count >= 21 || count ==9)
+ {
+ count = 10;
+ if(pdata->bio_val_o > bio1 || count == 0)//保存校准数据
+ {
+ get_dev9202_wear_data(&sys_config.dev9202_wear_data);//获取校准参数
+ sys_config.dev9202_wear_data.calc_bio = pdata->bio_val_o;
+ save_sys_config();
+ bio1 = pdata->bio_val_o;
+ }
+ }
+ //co_printf("factory_test_function bio_val_o:%d!! \n\r",pdata->bio_val_o);
+
}
static void fpc_test_function(SamplingDataTypeDef *pdata)
{
}
unsigned int yyl_time = 0;
extern char yyl_close_flag ;
+extern int Bio_Diff_Value ;
void vc9202_usr_interrupt_handler( AlgoSportMode hr_alg_mode, unsigned char spo2_alg_mode )
{
//unsigned char wear_status = WEAR_STA_NONE;
}
break;
case WORK_MODE_FACTORY:
+ vc9202_alg_results.wear_status = vc9202_usr_get_wear_status();
factory_test_function(&data);
- co_printf("WORK_MODE_FACTORY:apre_val[0]:%d,apre_val[1]:%d,aps_val:%d\n",data.apre_val[0],data.apre_val[1],data.aps_val);
- UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"factory_data\":\"%d,%d,%d\"}\n",data.apre_val[0],data.apre_val[1],data.aps_val);
+ //co_printf("WORK_MODE_FACTORY:apre_val[0]:%d,apre_val[1]:%d,aps_val:%d\n",data.apre_val[0],data.apre_val[1],data.aps_val);
+ // UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"factory_data\":\"%d,%d,%d\"}\n"
+ // ,data.apre_val[0],data.apre_val[1],data.aps_val);
+
+ UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"factory_data\":\"%d,%d,%d\"}\n"
+ ,Bio_Diff_Value,vc9202_alg_results.wear_status,data.bio_val_o);//data.aps_val);
uart0_write_data(UART_send_buf,UART_send_buf_len);
break;
case WORK_MODE_FPC_TEST:
-;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Thu Jul 11 11:03:07 2024
+;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Sat Aug 31 11:54:14 2024
;VERSION 0.2
;FILE acpower_add_doublefre.o
acPower_add_doublefre_init <= USED 0
;FILE atts.o
;FILE average_value.o
;FILE biodetect_v14_1.o
+f_BIOdetect <= USED 0
+f_TPjudge <= USED 0
version_info_Bio <= USED 0
;FILE ble_simple_central.o
__asm___20_ble_simple_central_c_4fde123a____REV16 <= USED 0
ext_int_set_control <= USED 0
ext_int_set_port_mux <= USED 0
ext_int_set_type <= USED 0
-;FILE driver_i2s.o
-__asm___12_driver_i2s_c_i2s_reg____REV16 <= USED 0
-__asm___12_driver_i2s_c_i2s_reg____REVSH <= USED 0
-__asm___12_driver_i2s_c_i2s_reg____RRX <= USED 0
-i2s_clear_fifo <= USED 0
-i2s_get_data <= USED 0
-i2s_get_int_status <= USED 0
-i2s_init <= USED 0
-i2s_send_data <= USED 0
-i2s_start <= USED 0
-i2s_stop <= USED 0
;FILE driver_iic.o
__asm___12_driver_iic_c_8d61f799____REV16 <= USED 0
__asm___12_driver_iic_c_8d61f799____REVSH <= USED 0
pmu_set_led2_value <= USED 0
pmu_set_lp_clk_src <= USED 0
pmu_set_pin_to_CPU <= USED 0
-;FILE driver_pmu_qdec.o
-pmu_qdec_autorest_cnt_flag <= USED 0
-pmu_qdec_init <= USED 0
-pmu_qdec_set_debounce_cnt <= USED 0
-pmu_qdec_set_irq_type <= USED 0
-pmu_qdec_set_pin <= USED 0
-pmu_qdec_set_threshold <= USED 0
;FILE driver_rtc.o
__asm___12_driver_rtc_c_rtc_init____REV16 <= USED 0
__asm___12_driver_rtc_c_rtc_init____REVSH <= USED 0
__asm___11_user_task_c_d5bb1f8c____REVSH <= USED 0
__asm___11_user_task_c_d5bb1f8c____RRX <= USED 0
;FILE vc9202_driver.o
+__asm___15_vc9202_driver_c_677e08cb____REV16 <= USED 0
+__asm___15_vc9202_driver_c_677e08cb____REVSH <= USED 0
+__asm___15_vc9202_driver_c_677e08cb____RRX <= USED 0
vc9202_drv_electrostatic_death <= USED 0
vc9202_drv_get_chip_id <= USED 0
vc9202_drv_stop_sampling <= USED 0
char send_wear_data_flag= 0;//wear数据标致位
uint8_t *uart0_rivce_data = NULL;
//uint8_t uart0_rivce_data[UART_READ_MAX] ;
-char *Versions = "20240711-v0.5.3.041924";
+char *Versions = "20240831-v0.5.3.041924";
int uart0_data_len =0;
static int32_t system_curr_time = 0;//设置时间的时候保存的系统运行时间
#include "driver_system.h"
#include "driver_pwm.h"
#include "DRIVER_FLASH.H"
+#include "vc9202_driver.h"
#define UART_SEND_MAX 1024
#define UART_READ_MAX 512
extern char *Versions;
char HA_key_code[128+1];
char HA_req_code[128+1];
char IMEI[16];
+ VC9202WearCalibratorData dev9202_wear_data;
+ char end_config_flag;
}SysConfig;
unsigned char crc8(uint8_t *vptr, uint8_t len);
extern SysConfig sys_config;