#endif
-// #define USE_KVSTORE_STORE_CONFIG
+#define USE_KVSTORE_STORE_CONFIG
struct dial_config
private:
configmodel_item configmodel_item_key_name[CONFIGMODEL_ITEM_MAX] =
{
- {ConfigDataType::DATATYPE_BOOL, "ClassicBT_Service_On", "true" },// CONFIGMODEL_ITEM_CLASSIC_BT_SERVICE_ON, //关机前经典蓝牙服务状态,启动时仍然恢复其当时状态
- {ConfigDataType::DATATYPE_INT, "ScreenBrightness", "255" },//CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE, //屏幕亮度
- {ConfigDataType::DATATYPE_INT, "ScreenOffTimeoutValue", "5000" },//CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE, //屏幕自动息屏时间 默认 5秒 5000ms
- {ConfigDataType::DATATYPE_BOOL, "Cat1_Service_On", "false" },//CONFIGMODEL_ITEM_CAT1_SERVICE_ON, // 关机前Cat1 Service启动着,则重启仍然启动,反之亦然
- {ConfigDataType::DATATYPE_STRING, "Cat1_IMEI", "" },//CONFIGMODEL_ITEM_CAT1_IMEI,
- {ConfigDataType::DATATYPE_STRING, "Cat1_ModemVer", "" },//CONFIGMODEL_ITEM_CAT1_MODEMVER,
- {ConfigDataType::DATATYPE_STRING, "Cat1_PYVer", "" },//CONFIGMODEL_ITEM_CAT1_PYVER,
- {ConfigDataType::DATATYPE_INT, "LanguageID", "-1" },//CONFIGMODEL_ITEM_LANGUAGE_ID, //默认没有选择语言
- {ConfigDataType::DATATYPE_STRING, "LanguageCode", "" },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
- {ConfigDataType::DATATYPE_INT, "TimeZone", "32" },//CONFIGMODEL_ITEM_TIMEZONE, //单位刻钟 默认+8 小时 = 4*8 = 32 刻钟
- {ConfigDataType::DATATYPE_BOOL, "SlientMode", "false" },//CONFIGMODEL_ITEM_SILENT_MODE,
- {ConfigDataType::DATATYPE_INT, "VibratorSwitch", "1" },//CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关,0 强,1 中,2 弱,3 关
- {ConfigDataType::DATATYPE_BOOL, "Rase2Wake", "true" },//CONFIGMODEL_ITEM_RAISE_TO_WAKE,
- {ConfigDataType::DATATYPE_INT, "StepCount", "0" },//CONFIGMODEL_ITEM_ACTIVITY_VALUES_STEPCOUNT, //活动数据步数
- {ConfigDataType::DATATYPE_INT, "Calories", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_CALORIES, //活动数据卡路里,
- {ConfigDataType::DATATYPE_INT, "StandupTimes", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_STANDUP_TIMES, //活动数据站立次数
- {ConfigDataType::DATATYPE_INT, "Duration", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_DURATION, //活动数据运动时间
- {ConfigDataType::DATATYPE_DOUBLE, "Distance", "0.0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_DISTANCE, //活动数据运动距离
- {ConfigDataType::DATATYPE_INT, "ActivityTimestamp", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_TIMESTAMP, //活动数据更新时间戳
+ {ConfigDataType::DATATYPE_BOOL, "classicbt_service_on", "true" },// CONFIGMODEL_ITEM_CLASSIC_BT_SERVICE_ON, //关机前经典蓝牙服务状态,启动时仍然恢复其当时状态
+ {ConfigDataType::DATATYPE_INT, "screen_brightness", "255" },//CONFIGMODEL_ITEM_SCREEN_BRIGHTNESS_VALUE, //屏幕亮度
+ {ConfigDataType::DATATYPE_INT, "screenoff_timeout_value", "5000" },//CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE, //屏幕自动息屏时间 默认 5秒 5000ms
+ {ConfigDataType::DATATYPE_BOOL, "cat1_service_on", "false" },//CONFIGMODEL_ITEM_CAT1_SERVICE_ON, // 关机前Cat1 Service启动着,则重启仍然启动,反之亦然
+ {ConfigDataType::DATATYPE_STRING, "cat1_imei", "" },//CONFIGMODEL_ITEM_CAT1_IMEI,
+ {ConfigDataType::DATATYPE_STRING, "cat1_modemver", "" },//CONFIGMODEL_ITEM_CAT1_MODEMVER,
+ {ConfigDataType::DATATYPE_STRING, "cat1_pyver", "" },//CONFIGMODEL_ITEM_CAT1_PYVER,
+ {ConfigDataType::DATATYPE_INT, "language_id", "-1" },//CONFIGMODEL_ITEM_LANGUAGE_ID, //默认没有选择语言
+ {ConfigDataType::DATATYPE_STRING, "language_code", "" },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
+ {ConfigDataType::DATATYPE_INT, "timezone", "32" },//CONFIGMODEL_ITEM_TIMEZONE, //单位刻钟 默认+8 小时 = 4*8 = 32 刻钟
+ {ConfigDataType::DATATYPE_BOOL, "slient_mode", "false" },//CONFIGMODEL_ITEM_SILENT_MODE,
+ {ConfigDataType::DATATYPE_INT, "vibrator_switch", "1" },//CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关,0 强,1 中,2 弱,3 关
+ {ConfigDataType::DATATYPE_BOOL, "rase2wake", "true" },//CONFIGMODEL_ITEM_RAISE_TO_WAKE,
+ {ConfigDataType::DATATYPE_INT, "stepcount", "0" },//CONFIGMODEL_ITEM_ACTIVITY_VALUES_STEPCOUNT, //活动数据步数
+ {ConfigDataType::DATATYPE_INT, "calories", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_CALORIES, //活动数据卡路里,
+ {ConfigDataType::DATATYPE_INT, "standup_times", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_STANDUP_TIMES, //活动数据站立次数
+ {ConfigDataType::DATATYPE_INT, "duration", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_DURATION, //活动数据运动时间
+ {ConfigDataType::DATATYPE_DOUBLE, "distance", "0.0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_DISTANCE, //活动数据运动距离
+ {ConfigDataType::DATATYPE_INT, "activity_timestamp", "0" },// CONFIGMODEL_ITEM_ACTIVITY_VALUES_TIMESTAMP, //活动数据更新时间戳
{ConfigDataType::DATATYPE_INT, "height", "175" },// CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT, //用户数据身高 (cm)(身高)(default : 175)(30 - 300)
{ConfigDataType::DATATYPE_INT, "weight", "70" },// CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT, //用户数据体重 (kg)(體重)(default : 70)(10 - 300)
{ConfigDataType::DATATYPE_INT, "sex", "1" },// CONFIGMODEL_ITEM_CUSTOM_DATA_SEX, //用户数据性别 (default : 1 男性)(0 : 女性, 1 : 男性)
{ConfigDataType::DATATYPE_INT, "age", "30" },// CONFIGMODEL_ITEM_CUSTOM_DATA_AGE, //用户数据年龄 (年紀)(default : 30)(1 - 99)
- {ConfigDataType::DATATYPE_INT, "WearingMode", "0" },// CONFIGMODEL_ITEM_CUSTOM_DATA_WEARING_MODE, //用户数据佩戴方式 (default : 左手)(0 : 左手 1 : 右手)
- {ConfigDataType::DATATYPE_INT, "GoalStepCount", "10000" },// CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT, //运动目标步数 10000
- {ConfigDataType::DATATYPE_INT, "GoalCalories", "300" },// CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES, //运动目标卡路里 300(kcal)
- {ConfigDataType::DATATYPE_INT, "GoalStandupTimes", "10" },// CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES, //运动目标站立次数 10
- {ConfigDataType::DATATYPE_INT, "GoalDuration", "30" },// CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION, //运动目标时长 30(分钟)
- {ConfigDataType::DATATYPE_INT, "GoalDistance", "8" },// CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, //运动目标距离 8.0(km)
- {ConfigDataType::DATATYPE_BOOL, "Dnotdisturb", "false" },// CONFIGMODEL_ITEM_DNOTDISTURB //勿扰模式默认关闭
- {ConfigDataType::DATATYPE_INT, "SystemVolume", "100" },// CONFIGMODEL_ITEM_SYSTEM_VOLUME //
- {ConfigDataType::DATATYPE_INT, "CallVolume", "100" },// CONFIGMODEL_ITEM_CALL_VOLUME //
+ {ConfigDataType::DATATYPE_INT, "wearing_mode", "0" },// CONFIGMODEL_ITEM_CUSTOM_DATA_WEARING_MODE, //用户数据佩戴方式 (default : 左手)(0 : 左手 1 : 右手)
+ {ConfigDataType::DATATYPE_INT, "goal_stepcount", "10000" },// CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT, //运动目标步数 10000
+ {ConfigDataType::DATATYPE_INT, "goal_calories", "300" },// CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES, //运动目标卡路里 300(kcal)
+ {ConfigDataType::DATATYPE_INT, "goal_standup_times", "10" },// CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES, //运动目标站立次数 10
+ {ConfigDataType::DATATYPE_INT, "goal_duration", "30" },// CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION, //运动目标时长 30(分钟)
+ {ConfigDataType::DATATYPE_INT, "goal_distance", "8" },// CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE, //运动目标距离 8.0(km)
+ {ConfigDataType::DATATYPE_BOOL, "dnotdisturb", "false" },// CONFIGMODEL_ITEM_DNOTDISTURB //勿扰模式默认关闭
+ {ConfigDataType::DATATYPE_INT, "system_volume", "100" },// CONFIGMODEL_ITEM_SYSTEM_VOLUME //
+ {ConfigDataType::DATATYPE_INT, "call_volume", "100" },// CONFIGMODEL_ITEM_CALL_VOLUME //
{ConfigDataType::DATATYPE_BOOL, "VoLTECall", "false" },// CONFIGMODEL_ITEM_VOLTE_CALL
- {ConfigDataType::DATATYPE_BOOL, "MotionRecognition", "false" },// CONFIGMODEL_ITEM_MOTIONRECOGNITION
- {ConfigDataType::DATATYPE_BOOL, "HFP", "false" },// CONFIGMODEL_ITEM_HFP
- {ConfigDataType::DATATYPE_BOOL, "A2DP", "false" },// CONFIGMODEL_ITEM_A2DP
- {ConfigDataType::DATATYPE_BOOL, "SPP", "true" },// CONFIGMODEL_ITEM_SPP,//SPP蓝牙开关
+ {ConfigDataType::DATATYPE_BOOL, "motion_recognition", "false" },// CONFIGMODEL_ITEM_MOTIONRECOGNITION
+ {ConfigDataType::DATATYPE_BOOL, "hfp", "false" },// CONFIGMODEL_ITEM_HFP
+ {ConfigDataType::DATATYPE_BOOL, "a2dp", "false" },// CONFIGMODEL_ITEM_A2DP
+ {ConfigDataType::DATATYPE_BOOL, "spp", "true" },// CONFIGMODEL_ITEM_SPP,//SPP蓝牙开关
{ConfigDataType::DATATYPE_INT, "traningfreq", "10" },// CONFIGMODEL_ITEM_TRANING_FREQ //训练实时数据上传频率//单位秒
- {ConfigDataType::DATATYPE_BOOL, "traningauto", "0" },//CONFIGMODEL_ITEM_TRANING_AUTO,//开启关闭自动获取实时数据
+ {ConfigDataType::DATATYPE_INT, "traningauto", "0" },//CONFIGMODEL_ITEM_TRANING_AUTO,//开启关闭自动获取实时数据
{ConfigDataType::DATATYPE_INT, "traningheart", "190" },//CONFIGMODEL_ITEM_TRAINING_HEART_MAX//训练最高心率
- {ConfigDataType::DATATYPE_INT, "HeartRateDetected", "0" },// CONFIGMODEL_ITEM_HEARTRATE_DETECTED//心率周期检测频率
- {ConfigDataType::DATATYPE_INT, "HeartRateMax", "0" },// CONFIGMODEL_ITEM_HEARTRATE_MAX//最大心率
- {ConfigDataType::DATATYPE_INT, "HeartRateMin", "0" },// CONFIGMODEL_ITEM_HEARTRATE_MIN//最小心率
- {ConfigDataType::DATATYPE_BOOL, "Notify", "0" },// CONFIGMODEL_ITEM_NOTIFY//消息通知开关
- {ConfigDataType::DATATYPE_INT, "QuickAuxilParameter", "0" },// CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS//快捷辅助功能参数
+ {ConfigDataType::DATATYPE_INT, "heartrate_detected", "0" },// CONFIGMODEL_ITEM_HEARTRATE_DETECTED//心率周期检测频率
+ {ConfigDataType::DATATYPE_INT, "heartrate_max", "0" },// CONFIGMODEL_ITEM_HEARTRATE_MAX//最大心率
+ {ConfigDataType::DATATYPE_INT, "heartrate_min", "0" },// CONFIGMODEL_ITEM_HEARTRATE_MIN//最小心率
+ {ConfigDataType::DATATYPE_INT, "notify", "0" },// CONFIGMODEL_ITEM_NOTIFY//消息通知开关
+ {ConfigDataType::DATATYPE_INT, "quick_auxil_parameter", "0" },// CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS//快捷辅助功能参数
{ConfigDataType::DATATYPE_INT, "drink", "0" },// CONFIGMODEL_ITEM_DRINK,//开关 0 关闭 1开始 2间隔提醒
{ConfigDataType::DATATYPE_INT, "drinkgoal", "0" },// CONFIGMODEL_ITEM_DRINK_GOAL,//目标。ml
{ConfigDataType::DATATYPE_INT, "drinkstart", "0" }, // CONFIGMODEL_ITEM_DRINK_START,//提醒开始时间 int类型 前16位小时,后16位分钟
{ConfigDataType::DATATYPE_INT, "sleep_bedtime", "0" }, //CONFIGMODEL_ITEM_SLEEP_BEDTIME,//就寝时间
{ConfigDataType::DATATYPE_INT, "sleep_getup", "0" }, // CONFIGMODEL_ITEM_SLEEP_GET_UP,//起床时间
{ConfigDataType::DATATYPE_INT, "sleep_remide", "0" }, // CONFIGMODEL_ITEM_SLEEP_REMIND,//提前20分钟提醒开关
- {ConfigDataType::DATATYPE_BOOL, "sedentary_switch", "false" }, // CONFIGMODEL_ITEM_SEDENTARY_SWITCH,//久坐提醒开关
+ {ConfigDataType::DATATYPE_INT, "sedentary_switch", "0" }, // CONFIGMODEL_ITEM_SEDENTARY_SWITCH,//久坐提醒开关
{ConfigDataType::DATATYPE_INT, "sedentary_interval", "1" }, // CONFIGMODEL_ITEM_SEDENTARY_INTERVAL,//久坐提醒时间间隔
{ConfigDataType::DATATYPE_INT, "sedentary_reminderTime", "0" }, // CONFIGMODEL_ITEM_SEDENTARY_REMINDERTIME,//久坐提醒时间段 前16位是开始时间 前8 为小时 后8为分钟 后16位为结束时间规则同前 例: 1600 0B00 11点开始到 22点结束
{ConfigDataType::DATATYPE_STRING, "password", "000000" }, //CONFIGMODEL_ITEM_PASSWORD //手表密码 CONFIGMODEL_ITEM_SWITCH
void DumpItem(ConfigItem item);
void DumpData(void);
#ifdef USE_KVSTORE_STORE_CONFIG
- std::string ReadKVData_String(const char *field_name);
- double ReadKVData_Double(const char *field_name);
- int ReadKVData_Int(const char *field_name);
- bool ReadKVData_Bool(const char *field_name);
+ std::string ReadKVData_String(ConfigItem item,const char *field_name);
+ double ReadKVData_Double(ConfigItem item,const char *field_name);
+ int ReadKVData_Int(ConfigItem item,const char *field_name);
+ bool ReadKVData_Bool(ConfigItem item,const char *field_name);
void WriteKVData_Int(const char *field_name, int data);
void WriteKVData_Double(const char *field_name, double data);
#include "kv_store.h"
#include "kvstore_env.h"
-
-
+#if DEBUG_CONFIGMODEL
+#define CONFIG_DEBUG(fmt, arg...) printf("ConfigModel|" fmt, ##arg)
+#else
+#define CONFIG_DEBUG
+#endif
+// #define DEBUG_LINE() printf("%s %d\n",__func__,__LINE__)
namespace OHOS
{
#define MAX_NUM_BUF_LEN 32
/// @brief 显示读取到的json数据
void ConfigModel::DumpData(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------- JsonData: ------------------------------- */\n");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "/* -------------------------------- ConfigData: ------------------------------- */\n");
for (int i = 0; i< ConfigItem::CONFIGMODEL_ITEM_MAX;i++)
{
DumpItem((ConfigItem)i);
}
#ifdef USE_KVSTORE_STORE_CONFIG
- std::string ConfigModel::ReadKVData_String(const char *field_name)
+ std::string ConfigModel::ReadKVData_String(ConfigItem item,const char *field_name)
{
char* stringtmp=(char*)malloc(MAX_STRING_DATA_LEN);
+ if (stringtmp == NULL) return "-2";
int value_len = UtilsGetValue(field_name,stringtmp,MAX_STRING_DATA_LEN);
+ if (value_len<0)
+ {
+ reset_item_to_default(item);
+ memset(stringtmp,0,MAX_STRING_DATA_LEN);
+ value_len = UtilsGetValue(field_name,stringtmp,MAX_STRING_DATA_LEN);
+ }
if (value_len<0)//没有变量则用默认值初始化
{
free(stringtmp);
return ret;
}
}
- double ConfigModel::ReadKVData_Double(const char *field_name)
+ double ConfigModel::ReadKVData_Double(ConfigItem item,const char *field_name)
{
char *buf = (char*)malloc(MAX_NUM_BUF_LEN);
+ if (buf == NULL) return 0.0f;
int value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN);
- double ret = 0.0f;
+ if (value_len<0)
+ {
+ reset_item_to_default(item);
+ memset(buf,0,MAX_NUM_BUF_LEN);
+ value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN);
+ }
+ int flag = 1;
+ char* pchar = buf;
+ if ( buf[0] == '-')
+ {
+ flag=-1;
+ pchar=pchar+1;
+ }else if (pchar[0] == '+')
+ {
+ flag=1;
+ pchar=pchar+1;
+ }
+ double ret = 0.0f;
if (value_len >=0)
{
- ret = atof(buf);
+ ret = atof(pchar)*flag;
free(buf);
return ret;
}
return 0.0f;
}
}
- int ConfigModel::ReadKVData_Int(const char *field_name)
+ int ConfigModel::ReadKVData_Int(ConfigItem item,const char *field_name)
{
char *buf = (char*)malloc(MAX_NUM_BUF_LEN);
+ if (buf == NULL) return 0;
int value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN);
+ if (value_len<0)
+ {
+ reset_item_to_default(item);
+ memset(buf,0,MAX_NUM_BUF_LEN);
+ value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN);
+ }
int ret = 0;
-
+ int flag = 1;
+ char* pchar = buf;
+ if ( buf[0] == '-')
+ {
+ flag=-1;
+ pchar=pchar+1;
+ }else if (pchar[0] == '+')
+ {
+ flag=1;
+ pchar=pchar+1;
+ }
if (value_len >=0)
{
- ret = atoi(buf);
+ ret = atoi(pchar)*flag;
+ CONFIG_DEBUG("ReadKVData_Int %s = %s (%d), ret=%d\n",field_name,buf,value_len,ret);
free(buf);
return ret;
}
return 0;
}
}
- bool ConfigModel::ReadKVData_Bool(const char *field_name)
+ bool ConfigModel::ReadKVData_Bool(ConfigItem item,const char *field_name)
{
char *buf = (char*)malloc(MAX_NUM_BUF_LEN);
+ if (buf == NULL) return false;
int value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN);
+ CONFIG_DEBUG("ReadKVData_Bool %s = %s (%d)\n",field_name,buf,value_len);
+ if (value_len<0)
+ {
+ reset_item_to_default(item);
+ memset(buf,0,MAX_NUM_BUF_LEN);
+ value_len = UtilsGetValue(field_name,buf,MAX_NUM_BUF_LEN);
+ CONFIG_DEBUG("ReadKVData_Bool %s = %s (%d)\n",field_name,buf,value_len);
+ }
int ret = 0;
-
if (value_len >=0)
{
- ret = atoi(buf);
+ if (strlen(buf)>0 && strlen(buf)<4)
+ {
+ ret = 0;
+ }
+ else if (strncmp("true",buf,4) == 0)
+ {
+ ret = 1;
+ }
+ CONFIG_DEBUG("ReadKVData_Bool %s = %s (%d),ret %d\n",field_name,buf,value_len,ret);
free(buf);
if(ret > 0)
+ {
return true;
+ }
else
+ {
return false;
+ }
}
else
{
void ConfigModel::WriteKVData_Int(const char *field_name, int data)
{
char *buf = (char*)malloc(MAX_NUM_BUF_LEN);
+ if (buf == NULL) return ;
memset(buf,0,MAX_NUM_BUF_LEN);
sprintf_s(buf,32,"%d",data);
- UtilsSetValue(field_name,buf);
+ int ret = UtilsSetValue(field_name,buf);
+ CONFIG_DEBUG("WriteKVData_Int %s %s,ret %d\n",field_name,buf,ret);
free(buf);
}
void ConfigModel::WriteKVData_Double(const char *field_name, double data)
{
char *buf = (char*)malloc(MAX_NUM_BUF_LEN);
+ if (buf == NULL) return ;
memset(buf,0,MAX_NUM_BUF_LEN);
sprintf_s(buf,32,"%f",data);
- UtilsSetValue(field_name,buf);
+ int ret = UtilsSetValue(field_name,buf);
+ CONFIG_DEBUG("WriteKVData_Double %s %s,ret %d\n",field_name,buf,ret);
free(buf);
}
void ConfigModel::WriteKVData_Bool(const char *field_name, bool data)
{
char *buf = (char*)malloc(MAX_NUM_BUF_LEN);
+ if (buf == NULL) return ;
memset(buf,0,MAX_NUM_BUF_LEN);
- sprintf_s(buf,32,"%d",data);
- UtilsSetValue(field_name,buf);
+ sprintf_s(buf,32,"%s",data?"true":"false");
+ int ret = UtilsSetValue(field_name,buf);
+ CONFIG_DEBUG("WriteKVData_Bool %s %s,ret %d\n",field_name,buf,ret);
free(buf);
}
void ConfigModel::WriteKVData_String(const char *field_name, const char *data)
{
char *buf = (char*)malloc(MAX_STRING_DATA_LEN);
+ if (buf == NULL) return ;
memset(buf,0,MAX_STRING_DATA_LEN);
sprintf_s(buf,MAX_STRING_DATA_LEN,"%s",data);
+ CONFIG_DEBUG("%s %s\n",field_name,buf);
UtilsSetValue(field_name,buf);
free(buf);
}
bool ConfigModel::LoadKVData()
{
- char* buf=(char*)malloc(MAX_STRING_DATA_LEN);
- for (int i = 0; i< ConfigItem::CONFIGMODEL_ITEM_MAX;i++)
- {
- ConfigItem item = (ConfigItem)i;
- int ret = UtilsGetValue(get_config_name(item),buf,MAX_STRING_DATA_LEN);
- if (ret < 0) //没有变量则用默认值初始化
- {
- reset_item_to_default(item);
- }
- }
- free(buf);
+ // char* buf=(char*)malloc(MAX_STRING_DATA_LEN);
+ // for (int i = 0; i< ConfigItem::CONFIGMODEL_ITEM_MAX;i++)
+ // {
+ // ConfigItem item = (ConfigItem)i;
+ // int ret = UtilsGetValue(get_config_name(item),buf,MAX_STRING_DATA_LEN);
+ // if (ret < 0) //没有变量则用默认值初始化
+ // {
+ // reset_item_to_default(item);
+ // }
+ // }
+ // free(buf);
return true;
}
#else
{
bool defaultvalue = false;
- if (strncmp(configmodel_item_key_name[item].defaultValue,"true",sizeof("true"))==0) defaultvalue = true;
+ CONFIG_DEBUG("reset item[%d]%s=%s\n",item,configmodel_item_key_name[item].itemname,configmodel_item_key_name[item].defaultValue);
+ if (strncmp(configmodel_item_key_name[item].defaultValue,"true",4)==0) defaultvalue = true;
set_condigData_Bool(item,defaultvalue);
}
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(bool):value(%d)",
- get_config_name(item),
- get_configData_bool(item));
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(bool):value(%d)",
+ // get_config_name(item),
+ // get_configData_bool(item));
break;
case ConfigDataType::DATATYPE_DOUBLE:
{
- double defaultvalue = atof(configmodel_item_key_name[item].defaultValue);
+
+ int flag = 1;
+ char* pchar = configmodel_item_key_name[item].defaultValue;
+
+ if ( pchar[0] == '-')
+ {
+ flag=-1;
+ pchar=pchar+1;
+ }else if (pchar[0] == '+')
+ {
+ flag=1;
+ pchar=pchar+1;
+ }
+ double defaultvalue = atof(pchar)*flag;
+ CONFIG_DEBUG("item[%d]%s=%s , %f\n",item,configmodel_item_key_name[item].itemname,configmodel_item_key_name[item].defaultValue,defaultvalue);
set_condigData_Double(item,defaultvalue);
}
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(double):value(%f)",
- get_config_name(item),
- get_configData_double(item));
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(double):value(%f)",
+ // get_config_name(item),
+ // get_configData_double(item));
break;
case ConfigDataType::DATATYPE_INT :
{
- int defaultvalue = atoi(configmodel_item_key_name[item].defaultValue);
+
+ int flag = 1;
+ char* pchar = configmodel_item_key_name[item].defaultValue;
+
+ if ( pchar[0] == '-')
+ {
+ flag=-1;
+ pchar=pchar+1;
+ }else if (pchar[0] == '+')
+ {
+ flag=1;
+ pchar=pchar+1;
+ }
+ int defaultvalue = atoi(pchar)*flag;
+ CONFIG_DEBUG("item[%d]%s=%s , %d\n",item,configmodel_item_key_name[item].itemname,configmodel_item_key_name[item].defaultValue,defaultvalue);
set_condigData_Int(item,defaultvalue);
}
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(int):value(%d)",
- get_config_name(item),
- get_configData_int(item));
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(int):value(%d)",
+ // get_config_name(item),
+ // get_configData_int(item));
break;
case ConfigDataType::DATATYPE_STRING:
- set_condigData_String(item,configmodel_item_key_name[item].defaultValue);
+ CONFIG_DEBUG("item[%d]%s=%s\n",item,configmodel_item_key_name[item].itemname,configmodel_item_key_name[item].defaultValue);
+ set_condigData_String(item,configmodel_item_key_name[item].defaultValue);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(string):value(%s)",
- get_config_name(item),
- get_configData_string(item).c_str());
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "item(%s):type(string):value(%s)",
+ // get_config_name(item),
+ // get_configData_string(item).c_str());
break;
case ConfigDataType::DATATYPE_VECTOR_DOUBLE:
/**
{
#ifdef USE_KVSTORE_STORE_CONFIG
- return ReadKVData_Int(get_config_name(item));
+ return ReadKVData_Int(item,get_config_name(item));
#else
return ReadJsonData_Int(GetcJSON(),get_config_name(item));
#endif
double ConfigModel::get_configData_double(ConfigItem item)
{
#ifdef USE_KVSTORE_STORE_CONFIG
- return ReadKVData_Double(get_config_name(item));
+ return ReadKVData_Double(item,get_config_name(item));
#else
return ReadJsonData_Double(GetcJSON(),get_config_name(item));
#endif
{
#ifdef USE_KVSTORE_STORE_CONFIG
- return ReadKVData_Bool(get_config_name(item));
+ return ReadKVData_Bool(item,get_config_name(item));
#else
return ReadJsonData_Bool(GetcJSON(),get_config_name(item));
#endif
std::string ConfigModel::get_configData_string(ConfigItem item)
{
#ifdef USE_KVSTORE_STORE_CONFIG
- return ReadKVData_String(get_config_name(item));
+ return ReadKVData_String(item,get_config_name(item));
#else
return ReadJsonData_String(GetcJSON(),get_config_name(item));
#endif