1.rtos下电池优化;2.测试软件优化

This commit is contained in:
payton 2023-08-21 18:15:44 +08:00
parent 71077b52a9
commit ed7282fd6d
4 changed files with 138 additions and 56 deletions

View File

@ -2,7 +2,7 @@
#define _SF_BATTERY_H
#include <kwrap/task.h>
#include "FileSysTsk.h"
typedef signed int SINT32;
typedef enum {
@ -38,7 +38,7 @@ INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type);/*type: 0:F 1:C*/
void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem); /*0:F 1:C*/
void sf_temper_update(void);
INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper);
void sf_BatteryInfoSave(char *name);
void sf_BatteryInfoSave(char *name, FST_FILE fd);
UINT32 sf_get_temper_adc(void);
UINT8 sf_solar_to_Lunar(UINT16 Year,UINT8 Month, UINT8 Day);
void sf_battery_print(void);

View File

@ -21,7 +21,7 @@
//#include "kflow_audiocapture/ctl_aud.h"
#include "rtos_na51089/kdrv_i2c.h"
#endif
#include "FileSysTsk.h"
#define SUCCESS 0
#define FAIL 1
@ -514,7 +514,7 @@ void sf_file_thumb_cfg_fill(char* filepath,char* fileName,UINT32 size, SF_FILE_T
void sf_file_thumb_cfg_set(SF_SRCFILE_ATTR_S *pThumbFileCfgl);
void sf_file_thumb_cfg_clear(void);
void sf_file_thumb_cfg_sava(void);
void sf_add_file_name_to_send_list(char *sendfname, UINT32 fd);
void sf_add_file_name_to_send_list(char *sendfname, FST_FILE fd);
UINT8 sf_mcu_power_on_para_get(MCUParam_t attrId);
void sf_mcu_flag_init(void);
void sf_mcu_flag_set_done(MCU_FLAG_INIT boot_init);
@ -524,7 +524,7 @@ void sf_mcu_flag_clear_done(MCU_FLAG_INIT boot_init);
UINT32 sf_get_send_pic_sieze(void);
void sf_para_print(void);
UINT8 sf_convert_power_on_mode(void);
void sf_hw_info_save(char *name);
void sf_hw_info_save(char *name,FST_FILE fd);
void sf_set_iso_exp_lv(UINT32 adj, UINT32 iso, UINT32 exp, UINT32 lv);
UINT32 sf_in_update(void);
#endif

View File

@ -204,7 +204,7 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
}
//vos_util_delay_ms(1);
vos_util_delay_us(100);
vos_util_delay_us(1500);
*pval = adc_readVoltage(0);
//*pval = adc_readData(0);
@ -298,6 +298,10 @@ UINT32 sf_battery_adc_value_get_once(void)
UINT32 liPolymerVoltageVal = 0;
UINT32 batVoltageVal = 0;
static UINT8 getBatAdcFlg = 0;
static int getBatFlg = 2;
static int getLiBatFlg = 2;
static int getDcFlg = 2;
UIMenuStoreInfo *puiPara = sf_ui_para_get();
if(getBatAdcFlg)
@ -305,32 +309,62 @@ UINT32 sf_battery_adc_value_get_once(void)
getBatAdcFlg = 1;
if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS)
{
dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
//dcVoltageVal += 4;
if(puiPara->BatteryLogSwitch)
printf("DC ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10);
}
if(sf_adc_value_get(SF_ADC_LI, &batAdc) == SUCCESS)
if(getDcFlg)
{
liPolymerVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
//liPolymerVoltageVal += 4;
if(puiPara->BatteryLogSwitch)
printf("Li ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10);
if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS)
{
dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
//dcVoltageVal += 4;
if(puiPara->BatteryLogSwitch)
printf("DC ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10);
}
if(batAdc <= 0)
{
getDcFlg--;
}
else {
getDcFlg = 2;
}
}
if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS)
if(getLiBatFlg)
{
batVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
//batVoltageVal += 4;
if(puiPara->BatteryLogSwitch)
printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
if(sf_adc_value_get(SF_ADC_LI, &batAdc) == SUCCESS)
{
liPolymerVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
//liPolymerVoltageVal += 4;
if(puiPara->BatteryLogSwitch)
printf("Li ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10);
}
if(batAdc <= 0)
{
getLiBatFlg--;
}
else {
getLiBatFlg = 2;
}
}
if(getBatFlg)
{
if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS)
{
batVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
//batVoltageVal += 4;
if(puiPara->BatteryLogSwitch)
printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
}
if(batAdc <= 0)
{
getBatFlg--;
}
else {
getBatFlg = 2;
}
}
if(sf_adc_value_get(SF_ADC_TEMP, &batAdc) == SUCCESS)
{
_TemperAdc = batAdc;
@ -877,6 +911,7 @@ void sf_battery_thread_init(void)
if(!dofirst)
return;
dofirst = 0;
sf_adc_init();
VK_TASK_HANDLE s_handle_batt = 0;
@ -1558,14 +1593,14 @@ UINT8 sf_solar_to_Lunar(UINT16 Year,UINT8 Month, UINT8 Day)
#if SF_BATTERY_TEST == ENABLE
void sf_BatteryInfoSave(char *name)
void sf_BatteryInfoSave(char *name, FST_FILE fd)
{
char *tmpBuf = NULL;
UINT32 LibatAdc = 0;
UINT32 batAdc = 0;
//char fileName[64] = {0};
FST_FILE fd = 0;
//FST_FILE fd = 0;
//struct stat st;
UINT32 size = 0;
INT32 ret_fs = 0;
@ -1586,8 +1621,8 @@ void sf_BatteryInfoSave(char *name)
else {
fd = open(SF_BATTERY_TEST_FILE, O_APPEND | O_WRONLY | O_CREAT);
}*/
printf("fileName:%s\n",SF_BATTERY_TEST_FILE);
fd = FileSys_OpenFile(SF_BATTERY_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
//printf("fileName:%s\n",SF_BATTERY_TEST_FILE);
//fd = FileSys_OpenFile(SF_BATTERY_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
LibatAdc = sf_battery_convert_to_adc(24, 100, LiPolymerVoltageValTest);
batAdc = sf_battery_convert_to_adc(24, 100, BatVoltageValTest);
@ -1604,16 +1639,17 @@ void sf_BatteryInfoSave(char *name)
close(fd);
printf("Add Success st_size:%ld\n", st.st_size);
*/
ret_fs = FileSys_SeekFile((FST_FILE)fd, 0, FST_SEEK_END);
ret_fs = FileSys_SeekFile(fd, 0, FST_SEEK_END);
if (ret_fs != FST_STA_OK) {
printf("%s:%d seek file failed\r\n", __FUNCTION__, __LINE__);
}
size = strlen(tmpBuf);
ret_fs = FileSys_WriteFile((FST_FILE)fd, (UINT8*)tmpBuf, &size, 0, NULL);
printf("%s:%d size:%lu\r\n", __FUNCTION__, __LINE__, size);
ret_fs = FileSys_WriteFile(fd, (UINT8*)tmpBuf, &size, 0, NULL);
if (ret_fs != FST_STA_OK) {
printf("%s:%d FileSys_WriteFile failed\r\n", __FUNCTION__, __LINE__);
}
FileSys_CloseFile(fd);
//FileSys_CloseFile((FST_FILE)fd);
}
free(tmpBuf);
}
@ -1644,16 +1680,16 @@ void sf_battery_print(void)
{
if(DcVoltageVal)
{
printf("\n[max]DC ADC Value=%lu,After Convert:(%lu.%luV),Is Dc In=%s\n", sf_battery_convert_to_adc(24, 100, DcVoltageVal), DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No");
printf("DC ADC Value=%lu V:(%lu.%luV),Is Dc In=%s\n", sf_battery_convert_to_adc(24, 100, DcVoltageVal), DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No");
}
if(LiPolymerVoltageVal)
{
printf("[max]Li ADC Value=%lu,After Convert:(%lu.%luV)\n\n", sf_battery_convert_to_adc(24, 100, LiPolymerVoltageVal), LiPolymerVoltageVal / 10, LiPolymerVoltageVal % 10);
printf("Li ADC Value=%lu V:(%lu.%luV)\n", sf_battery_convert_to_adc(24, 100, LiPolymerVoltageVal), LiPolymerVoltageVal / 10, LiPolymerVoltageVal % 10);
}
else
{
printf("[max]Other ADC Value=%lu V:(%lu.%luV)\n\n", sf_battery_convert_to_adc(24, 100, LiPolymerVoltageVal), BatVoltageVal / 10, BatVoltageVal % 10);
printf("Other ADC Value=%lu V:(%lu.%luV)\n", sf_battery_convert_to_adc(24, 100, BatVoltageVal), BatVoltageVal / 10, BatVoltageVal % 10);
}
}
#endif

View File

@ -2161,7 +2161,7 @@ void sf_file_thumb_cfg_sava(void)
char sendListName[64] = {0};
FST_FILE fs = 0;
//char buff[SF_SEND_LIST_ITEM_LENGTH+1] = {0};
int fd = 0;
//int fd = 0;
static int flag = 0;
//struct stat st;
#if SF_IQ_TEST != ENABLE
@ -2204,13 +2204,63 @@ void sf_file_thumb_cfg_sava(void)
for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++)
{
if((0 == fileIndex) || ((1 == puiPara->SendMulti))){
sf_add_file_name_to_send_list(pThumbFileCfg->stfileattr[fileIndex].thumbfileName, fd);
sf_add_file_name_to_send_list(pThumbFileCfg->stfileattr[fileIndex].thumbfileName, fs);
printf("%s:%d thumbfileSize:%ld thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,pThumbFileCfg->stfileattr[fileIndex].thumbfileSize,pThumbFileCfg->stfileattr[fileIndex].thumbfileName,pThumbFileCfg->stfileattr[fileIndex].thumbfilePath);
}
}
FileSys_CloseFile(fs);
//close(fd);
}
#if SF_BATTERY_TEST == ENABLE
fs = 0;
fileIndex = 0;
char str1[6] = { 0 };
char str2[6] = { 0 };
printf("fileName:%s\n",SF_BATTERY_TEST_FILE);
fs = FileSys_OpenFile(SF_BATTERY_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
if(fs)
{
for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++)
{
if((0 == fileIndex) || ((1 == puiPara->SendMulti))){
memset(str1,'\0', sizeof(str1));
memset(str2,'\0', sizeof(str2));
memcpy(str1, pThumbFileCfg->stfileattr[fileIndex].thumbfileName + 4, 4);
snprintf((char *)str2, sizeof(str2), "%s", str1);
printf("%s:%d thumbfileName:%s str2:%s\n", __FUNCTION__, __LINE__, pThumbFileCfg->stfileattr[fileIndex].thumbfileName, str2);
sf_BatteryInfoSave(str2,fs);
}
}
FileSys_CloseFile(fs);
//close(fd);
}
#endif
#if SF_HW_TEST == ENABLE
fs = 0;
fileIndex = 0;
char str3[6] = { 0 };
char str4[6] = { 0 };
printf("fileName:%s\n",SF_HW_TEST_FILE);
fs = FileSys_OpenFile(SF_HW_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
if(fs)
{
for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++)
{
if((0 == fileIndex) || ((1 == puiPara->SendMulti))){
memset(str3,'\0', sizeof(str3));
memset(str4,'\0', sizeof(str4));
memcpy(str3, pThumbFileCfg->stfileattr[fileIndex].thumbfileName + 4, 4);
snprintf((char *)str4, sizeof(str4), "%s", str3);
printf("%s:%d thumbfileName:%s str2:%s\n", __FUNCTION__, __LINE__, pThumbFileCfg->stfileattr[fileIndex].thumbfileName, str4);
sf_hw_info_save(str4,fs);
}
}
FileSys_CloseFile(fs);
//close(fd);
}
#endif
//printf("%s:%d e Size:%ld\n", __FUNCTION__, __LINE__,pThumbFileCfg->stfileattr[fileIndex].thumbfileSize);
free(pThumbFileCfg);
}
@ -2224,7 +2274,7 @@ void sf_file_thumb_cfg_sava(void)
Return: N/A
Others: N/A
*************************************************/
void sf_add_file_name_to_send_list(char *sendfname, UINT32 fd)
void sf_add_file_name_to_send_list(char *sendfname, FST_FILE fd)
{
//char sendListName[64] = {0};
char buff[SF_SEND_LIST_ITEM_LENGTH+1] = {0};
@ -2233,6 +2283,11 @@ void sf_add_file_name_to_send_list(char *sendfname, UINT32 fd)
INT32 ret_fs = 0;
UIMenuStoreInfo *puiPara = sf_ui_para_get();
if (sendfname == NULL) {
printf("%s:%d sendfname err\n", __FUNCTION__, __LINE__);
return;
}
if(strlen(sendfname) != SF_SEND_LIST_ITEM_LENGTH-3) //3 ->CamMode \r\n
{
printf("%s:%d AddFileNameToSenddist fail: send file name format error\n", __FUNCTION__, __LINE__);
@ -2259,16 +2314,6 @@ void sf_add_file_name_to_send_list(char *sendfname, UINT32 fd)
//printf("Add Success st_size:%ld\n", st.st_size);
}
#if SF_BATTERY_TEST == ENABLE
char str1[5] = { 0 };
memcpy(str1, sendfname + 4, 4);
sf_BatteryInfoSave(str1);
#endif
#if SF_HW_TEST == ENABLE
char str2[5] = { 0 };
memcpy(str2, sendfname + 4, 4);
sf_hw_info_save(str2);
#endif
}
/*************************************************
@ -2294,6 +2339,7 @@ void sf_para_print(void)
printf("Firmware compile time:%s %s VER:%s\n", __DATE__, __TIME__,SF_BASE_VERSION);
printf("%s:%d tm: %d : %d : %d : %d : %d : %d\n", __FUNCTION__, __LINE__,ctv.tm_year, ctv.tm_mon,ctv.tm_mday,ctv.tm_hour,ctv.tm_min,ctv.tm_sec);
printf("%s:%d isUsb = %d isCard = %d isCardFull = %d simCardInsert = %ld start mode = %d IRSHTTER = %d\n",__FUNCTION__,__LINE__, isUsb, isCard, isCardFull, simCardInsert, PowerOnMode, IRSHTTER);
sf_battery_print();
}
#if SF_HW_TEST == ENABLE
@ -2309,14 +2355,14 @@ void sf_set_iso_exp_lv(UINT32 adj, UINT32 iso, UINT32 exp, UINT32 lv)
testexp = exp;
testlv = lv;
}
void sf_hw_info_save(char *name)
void sf_hw_info_save(char *name,FST_FILE fd)
{
char *tmpBuf = NULL;
//UINT32 LibatAdc = 0;
//UINT32 batAdc = 0;
//char fileName[64] = {0};
FST_FILE fd = 0;
//FST_FILE fd = 0;
//struct stat st;
UINT32 size = 0;
INT32 ret_fs = 0;
@ -2361,8 +2407,8 @@ void sf_hw_info_save(char *name)
else {
fd = open(SF_HW_TEST_FILE, O_APPEND | O_WRONLY | O_CREAT);
}*/
printf("fileName:%s\n",SF_HW_TEST_FILE);
fd = FileSys_OpenFile(SF_HW_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
//printf("fileName:%s\n",SF_HW_TEST_FILE);
//fd = FileSys_OpenFile(SF_HW_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
sprintf(tmpBuf, "%s %s IRSHTTER=%d TemperAdc=%lu ae_adj=%lu iso=%lu exp=%lu lv=%lu\r\n", datestr, name, IRSHTTER, sf_get_temper_adc(), testadj, testiso, testexp, testlv);
@ -2375,16 +2421,16 @@ void sf_hw_info_save(char *name)
write(fd, tmpBuf, strlen(tmpBuf));
close(fd);*/
//printf("Add Success st_size:%ld\n", st.st_size);
ret_fs = FileSys_SeekFile((FST_FILE)fd, 0, FST_SEEK_END);
ret_fs = FileSys_SeekFile(fd, 0, FST_SEEK_END);
if (ret_fs != FST_STA_OK) {
printf("%s:%d seek file failed\r\n", __FUNCTION__, __LINE__);
}
size = strlen(tmpBuf);
ret_fs = FileSys_WriteFile((FST_FILE)fd, (UINT8*)tmpBuf, &size, 0, NULL);
ret_fs = FileSys_WriteFile(fd, (UINT8*)tmpBuf, &size, 0, NULL);
if (ret_fs != FST_STA_OK) {
printf("%s:%d FileSys_WriteFile failed\r\n", __FUNCTION__, __LINE__);
}
FileSys_CloseFile(fd);
//FileSys_CloseFile(fd);
}
free(tmpBuf);
}