\r
+// #include <sys/stat.h>\r
+// #include <iostream>\r
+// #include <fstream>\r
#include "schedule/include/ScheduleModel.h"\r
#include "wearable_log.h"\r
\r
return ScheduleItemData_[index].ContentStr.c_str();\r
}\r
\r
+ uint8_t ScheduleModel::ScheduleItemDataOriginalDataIndexGet(uint8_t index)\r
+ {\r
+ return ScheduleItemData_[index].OriginalDataIndex;\r
+ }\r
+\r
void ScheduleModel::ScheduleOriginalDataSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleModel::ScheduleOriginalDataSetByApp,%d,%d", index, is_finish);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleOriginalDataSetByApp,%d,%d", index, is_finish);\r
+ uint8_t len = 0;\r
\r
ScheduleOriginalData_[index].date.assign(data->date);\r
- ScheduleOriginalData_[index].topic.assign(data->topic);\r
+\r
+ len = ((SCHEDULE_TOPIC_STR_MAX - 1 > data->topic.length()) ? data->topic.length() : SCHEDULE_TOPIC_STR_MAX - 1);\r
+ ScheduleOriginalData_[index].topic.assign(data->topic, 0, len);\r
+\r
ScheduleOriginalData_[index].time.assign(data->time);\r
- ScheduleOriginalData_[index].content.assign(data->content);\r
+\r
+ len = ((SCHEDULE_CONTENT_STR_MAX - 1 > data->content.length()) ? data->content.length() : SCHEDULE_CONTENT_STR_MAX - 1);\r
+ ScheduleOriginalData_[index].content.assign(data->content, 0, len);\r
\r
if(true == is_finish)\r
{\r
ScheduleOriginalData_[i].time.assign(ScheduleOriginalData_[i + 1].time);\r
ScheduleOriginalData_[i].content.assign(ScheduleOriginalData_[i + 1].content);\r
}\r
+ \r
+ ScheduleOriginalData_[i].date.clear();\r
+ ScheduleOriginalData_[i].topic.clear();\r
+ ScheduleOriginalData_[i].time.clear();\r
+ ScheduleOriginalData_[i].content.clear();\r
\r
DataCount -= 1;\r
ScheduleOriginalDataCountSet(DataCount);\r
uint8_t j = 0;\r
\r
memset(ScheduleItemData_, 0x0, sizeof(ScheduleListItemInfo) * SCHEDULE_DATA_COUNT_MAX*2);\r
+ ScheduleItemDataCountSet(0);\r
\r
for(i = 0, j = 0; i < DataCount; i++)\r
{\r
}\r
}\r
\r
- uint8_t ItemCount = j + 1;\r
- ScheduleItemDataCountSet(ItemCount);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleModel::ScheduleOriginalDataToItemData,%d,%s", j, ScheduleItemData_[0].DateStr.c_str());\r
+ if(0 != DataCount)\r
+ {\r
+ uint8_t ItemCount = j + 1;\r
+ ScheduleItemDataCountSet(ItemCount);\r
+ }\r
+ \r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleModel::ScheduleOriginalDataToItemData,%d,%s", j, ScheduleItemData_[0].DateStr.c_str());\r
}\r
\r
+ void ScheduleModel::DataStringToCharArray(void)\r
+ {\r
+ uint8_t DataCount = ScheduleOriginalDataCountGet();\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:DataStringToCharArray,%d", __LINE__, DataCount);\r
\r
- // c func\r
- void C_ScheduleSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish)\r
+ memset(C_ScheduleOriginalData_, 0x0, sizeof(C_ScheduleRevData) * SCHEDULE_DATA_COUNT_MAX);\r
+\r
+ uint8_t i = 0;\r
+ for(i = 0; i < DataCount; i++)\r
+ {\r
+ memcpy(C_ScheduleOriginalData_[i].date, ScheduleOriginalData_[i].date.c_str(), SCHEDULE_DATE_STR_MAX - 1);\r
+ memcpy(C_ScheduleOriginalData_[i].topic, ScheduleOriginalData_[i].topic.c_str(), SCHEDULE_TOPIC_STR_MAX - 1);\r
+ memcpy(C_ScheduleOriginalData_[i].time, ScheduleOriginalData_[i].time.c_str(), SCHEDULE_TIME_STR_MAX - 1);\r
+ memcpy(C_ScheduleOriginalData_[i].content, ScheduleOriginalData_[i].content.c_str(), SCHEDULE_CONTENT_STR_MAX - 1); \r
+ }\r
+ }\r
+\r
+ void ScheduleModel::DataCharArrayToString(uint8_t DataCount)\r
{\r
- ScheduleModel::GetInstance().ScheduleOriginalDataSetByApp(data, index, is_finish);\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:DataCharArrayToString,%d", __LINE__, DataCount);\r
+\r
+ uint8_t i = 0;\r
+ for(i = 0; i < DataCount; i++)\r
+ {\r
+ ScheduleOriginalData_[i].date.assign(C_ScheduleOriginalData_[i].date);\r
+ ScheduleOriginalData_[i].topic.assign(C_ScheduleOriginalData_[i].topic);\r
+ ScheduleOriginalData_[i].time.assign(C_ScheduleOriginalData_[i].time);\r
+ ScheduleOriginalData_[i].content.assign(C_ScheduleOriginalData_[i].content);\r
+ }\r
+ ScheduleOriginalDataCountSet(DataCount);\r
}\r
\r
- int C_ScheduleDataReadFromFile()\r
+ // int C_ScheduleDataReadFromFile(void)\r
+ int ScheduleModel::ScheduleDataReadFromFile(void)\r
{\r
+ FILE *fp = fopen(SCHEDULE_DATA_FILE, "rb");\r
+ if (fp == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:C_ScheduleDataReadFromFile", __LINE__);\r
+ return OHOS_FAILURE;\r
+ }\r
\r
+ fseek(fp, 0, SEEK_END);\r
+ int len = ftell(fp);\r
+ fseek(fp, 0, SEEK_SET);\r
+ uint8_t DataCount = len / sizeof(C_ScheduleRevData);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:%d,%d", __LINE__, DataCount, len);\r
+ fread((char *)C_ScheduleOriginalData_, sizeof(C_ScheduleRevData), DataCount, fp);\r
+ fclose(fp);\r
\r
- return 0;\r
+ DataCharArrayToString(DataCount);\r
+\r
+ ScheduleOriginalDataCountSet(DataCount);\r
+ ScheduleOriginalDataToItemData(DataCount);\r
+\r
+ return OHOS_SUCCESS;\r
}\r
\r
- int C_ScheduleDataWriteToFile()\r
+ // int C_ScheduleDataWriteToFile(void)\r
+ int ScheduleModel::ScheduleDataWriteToFile(void)\r
{\r
+ uint8_t DataCount = ScheduleOriginalDataCountGet();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:ScheduleDataWriteToFile,%d", __LINE__, DataCount);\r
+ if(0 == DataCount)\r
+ {\r
+ return OHOS_FAILURE;\r
+ }\r
\r
+ FILE *fp = fopen(SCHEDULE_DATA_FILE, "wb+");\r
+ if (nullptr == fp)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:ScheduleDataWriteToFile fail", __LINE__);\r
+ return OHOS_FAILURE;\r
+ }\r
\r
- return 0;\r
- }\r
+ DataStringToCharArray();\r
+\r
+ size_t ret = fwrite(C_ScheduleOriginalData_, sizeof(C_ScheduleRevData), DataCount, fp);\r
+ if (DataCount != ret)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:ScheduleDataWriteToFile fail", __LINE__);\r
+ }\r
+ fclose(fp);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:ScheduleDataWriteToFile success", __LINE__);\r
\r
+ return OHOS_SUCCESS;\r
+ }\r
}\r
+\r
+\r
+ // c func\r
+ void C_ScheduleSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish)\r
+ {\r
+ OHOS::ScheduleModel::GetInstance().ScheduleOriginalDataSetByApp(data, index, is_finish);\r
+ }\r
+\r
+ int C_ScheduleDataReadFromFile(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:C_ScheduleDataReadFromFile", __LINE__);\r
+ return OHOS::ScheduleModel::GetInstance().ScheduleDataReadFromFile();\r
+ }\r
+\r
+ int C_ScheduleDataWriteToFile(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:C_ScheduleDataWriteToFile", __LINE__);\r
+ return OHOS::ScheduleModel::GetInstance().ScheduleDataWriteToFile();\r
+ }\r
bool Ble_Set_ScheduleInfo(uint8_t id,uint32_t timetamp_begin,uint32_t timetamp_end,char *title,char *data,bool is_end)
{
- OHOS::ScheduleRevData info_;
+ // OHOS::ScheduleRevData info_;
+ ScheduleRevData info_;
info_.topic.clear();
info_.content.clear();
- info_.topic.append(title,strlen(title)+1);
- info_.content.append(data,strlen(data)+1);
+ info_.topic.append(title,strlen(title));
+ info_.content.append(data,strlen(data));
time_t currtime=timetamp_begin;
struct tm *timeinfo;
char day_buf[24]={0};
sprintf_s(day_buf,24,"%d/%d",m,d);
info_.date.clear();
- info_.date.append(day_buf,strlen(day_buf)+1);
+ info_.date.append(day_buf,strlen(day_buf));
currtime=timetamp_end;
timeinfo = localtime(&currtime);
char time_buf[24]={0};
sprintf_s(time_buf,24,"%02d:%02d-%02d:%02d",h,min,h_,min_);
info_.time.clear();
- info_.time.append(time_buf,strlen(time_buf)+1);
+ info_.time.append(time_buf,strlen(time_buf));
printf("///////////////////日程数据////////////////////\r\n");
printf("date:%s\r\n",info_.date.c_str());
printf("//////////////////////////////////////////////\r\n");
//printf("delete_before_file now day%d %d %d\r\n ",y,m,d);
- OHOS::C_ScheduleSetByApp(&info_, id - 1, is_end);
+ // OHOS::C_ScheduleSetByApp(&info_, id - 1, is_end);
+ C_ScheduleSetByApp(&info_, id - 1, is_end);
+
if(is_end)
printf("////////////////////结束///////////////////\r\n");