fix qvvr new funtion
This commit is contained in:
@@ -11484,18 +11484,19 @@ void OnTimerThread::run()
|
|||||||
// <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>ӵ<EFBFBD> *ptr <20><>
|
// <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>ӵ<EFBFBD> *ptr <20><>
|
||||||
size_t req_reply_http(void* contents, size_t size, size_t nmemb, void* userp) {
|
size_t req_reply_http(void* contents, size_t size, size_t nmemb, void* userp) {
|
||||||
size_t realsize = size * nmemb;
|
size_t realsize = size * nmemb;
|
||||||
char** ptr = (char**)userp;
|
char** responsePtr = (char**)userp;
|
||||||
|
|
||||||
// <20><>̬<EFBFBD><EFBFBD>չ *ptr <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
size_t oldLen = strlen(*responsePtr); // <20><>ǰ<EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><EFBFBD><EFBFBD>
|
||||||
char* temp = (char*)realloc(*ptr, strlen(*ptr) + realsize + 1);
|
char* temp = (char*)realloc(*responsePtr, oldLen + realsize + 1); // +1 <20><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD> '\0'
|
||||||
if (temp == NULL) {
|
if (temp == NULL) {
|
||||||
printf("Memory allocation failed!\n");
|
printf("Memory reallocation failed!\n");
|
||||||
return 0; // <20><><EFBFBD><EFBFBD> 0 <20><>֪ͨ curl ֹͣ<CDA3><D6B9><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>
|
return 0;
|
||||||
}
|
}
|
||||||
*ptr = temp;
|
|
||||||
|
|
||||||
// <><D7B7><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD> *ptr
|
*responsePtr = temp;
|
||||||
strncat(*ptr, (char*)contents, realsize);
|
memcpy(*responsePtr + oldLen, contents, realsize); // ֱ<>ӿ<EFBFBD><D3BF><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
||||||
|
(*responsePtr)[oldLen + realsize] = '\0'; // <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
return realsize;
|
return realsize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4378,8 +4378,11 @@ static void scanAndResendOfflineFiles(const std::string &dirPath)
|
|||||||
{
|
{
|
||||||
// <20><>ȡĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
|
// <20><>ȡĿ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
|
||||||
std::vector<FileInfo> fileList;
|
std::vector<FileInfo> fileList;
|
||||||
|
|
||||||
|
std::cout << "getDirectoryFilesInfo" << std::endl;
|
||||||
getDirectoryFilesInfo(dirPath, fileList);
|
getDirectoryFilesInfo(dirPath, fileList);
|
||||||
|
|
||||||
|
std::cout << "send every file" << std::endl;
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD>
|
||||||
for (size_t i = 0; i < fileList.size(); ++i) {
|
for (size_t i = 0; i < fileList.size(); ++i) {
|
||||||
// <20><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>(<28><>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD> JSON)
|
// <20><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>(<28><>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD> JSON)
|
||||||
@@ -4399,24 +4402,46 @@ static void scanAndResendOfflineFiles(const std::string &dirPath)
|
|||||||
}
|
}
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
|
std::cout << "send jsonContent" << jsonContent << std::endl;
|
||||||
|
|
||||||
// <20><><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>
|
// <20><><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>
|
||||||
char* ptr = NULL; // <20><><EFBFBD>շ<EFBFBD><D5B7><EFBFBD>
|
char* ptr = NULL; // <20><><EFBFBD>շ<EFBFBD><D5B7><EFBFBD>
|
||||||
SendJsonAPI_web(0, "", jsonContent.c_str(), &ptr);
|
SendJsonAPI_web(WEB_EVENT, "", jsonContent.c_str(), &ptr);
|
||||||
if (ptr != NULL) {
|
if (ptr != NULL) {
|
||||||
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ҫ<EFBFBD>ɼӸ<C9BC><D3B8><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>ж<EFBFBD>
|
|
||||||
handleCommentResponse(std::string(ptr));
|
cJSON* j_r = cJSON_Parse(ptr);
|
||||||
free(ptr);
|
if (j_r == NULL) {
|
||||||
// ɾ<><C9BE><EFBFBD>ļ<EFBFBD>
|
std::cout << "old file send fail" << std::endl;
|
||||||
remove(fileList[i].fileName.c_str());
|
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ҫ<EFBFBD>ɼӸ<C9BC><D3B8><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>ж<EFBFBD>
|
||||||
|
handleCommentResponse(std::string(ptr));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
std::cout << "old file send success,remove it" << std::endl;
|
||||||
|
// ɾ<><C9BE><EFBFBD>ļ<EFBFBD>
|
||||||
|
remove(fileList[i].fileName.c_str());
|
||||||
|
|
||||||
|
free(j_r);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// <20><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
std::cout << "old file send fail" << std::endl;
|
||||||
}
|
}
|
||||||
|
free(ptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// *****************************************************************************************
|
// *****************************************************************************************
|
||||||
|
|
||||||
|
std::string FormatTimeForFilename(const std::string& timeStr) {
|
||||||
|
std::string result;
|
||||||
|
for (char c : timeStr) {
|
||||||
|
if (isdigit(c)) {
|
||||||
|
result += c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
// ======================== ԭ<>ȵĺ<C8B5><C4BA><EFBFBD> ========================
|
// ======================== ԭ<>ȵĺ<C8B5><C4BA><EFBFBD> ========================
|
||||||
int transfer_json_qvvr_data(unsigned int func_type, int monitor_id,
|
int transfer_json_qvvr_data(unsigned int func_type, int monitor_id,
|
||||||
double mag, double dur, long long start_tm, long long end_tm, int dis_kind,
|
double mag, double dur, long long start_tm, long long end_tm, int dis_kind,
|
||||||
@@ -4484,9 +4509,12 @@ char* mp_id,char* Qvvr_rptname,char* devtype)
|
|||||||
|
|
||||||
// ================ <20><><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><C2B9><EFBFBD> =========================
|
// ================ <20><><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><C2B9><EFBFBD> =========================
|
||||||
// ********** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ʼ **********
|
// ********** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ʼ **********
|
||||||
|
if(ptr != NULL)
|
||||||
{
|
{
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>(ptr == NULL)<29><><EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD>ǰ json <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>Ŀ¼(/FeProject/dat/qvvr/)
|
cJSON* j_r = cJSON_Parse(ptr);
|
||||||
if (ptr == NULL) {
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>(j_r == NULL)<29><><EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD>ǰ json <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>Ŀ¼(/FeProject/dat/qvvr/)
|
||||||
|
if (j_r == NULL) {
|
||||||
|
std::cout << "qvvr send fail ,store in local" << std::endl;
|
||||||
// 1) <20>ȼ<EFBFBD><C8BC><EFBFBD>/FeProject/dat/qvvr/Ŀ¼<C4BF>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD>Ƿ<C7B7> 10M<30><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD>
|
// 1) <20>ȼ<EFBFBD><C8BC><EFBFBD>/FeProject/dat/qvvr/Ŀ¼<C4BF>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD>Ƿ<C7B7> 10M<30><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD>
|
||||||
std::string qvvrDir = "/FeProject/dat/qvvr/";
|
std::string qvvrDir = "/FeProject/dat/qvvr/";
|
||||||
checkAndRemoveOldestIfNeeded(qvvrDir, 10LL * 1024 * 1024);
|
checkAndRemoveOldestIfNeeded(qvvrDir, 10LL * 1024 * 1024);
|
||||||
@@ -4496,7 +4524,7 @@ char* mp_id,char* Qvvr_rptname,char* devtype)
|
|||||||
std::string fileName = qvvrDir;
|
std::string fileName = qvvrDir;
|
||||||
fileName += mp_id;
|
fileName += mp_id;
|
||||||
fileName += "-";
|
fileName += "-";
|
||||||
fileName += start_time_str;
|
fileName += FormatTimeForFilename(start_time_str);
|
||||||
fileName += "-";
|
fileName += "-";
|
||||||
|
|
||||||
char buf[64];
|
char buf[64];
|
||||||
@@ -4507,25 +4535,30 @@ char* mp_id,char* Qvvr_rptname,char* devtype)
|
|||||||
// <20><> json_string д<><D0B4><EFBFBD>ļ<EFBFBD>
|
// <20><> json_string д<><D0B4><EFBFBD>ļ<EFBFBD>
|
||||||
writeJsonToFile(fileName.c_str(), json_string);
|
writeJsonToFile(fileName.c_str(), json_string);
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
// <20><><EFBFBD>۴˴η<CBB4><CEB7>ͳɹ<CDB3><C9B9><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>Ҫɨ<D2AA><C9A8>/FeProject/dat/qvvr/Ŀ¼<C4BF>µ<EFBFBD><C2B5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD>
|
free(j_r);
|
||||||
{
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
std::string qvvrDir = "/FeProject/dat/qvvr/";
|
}
|
||||||
scanAndResendOfflineFiles(qvvrDir);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// <20><><EFBFBD>۴˴η<CBB4><CEB7>ͳɹ<CDB3><C9B9><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>Ҫɨ<D2AA><C9A8>/FeProject/dat/qvvr/Ŀ¼<C4BF>µ<EFBFBD><C2B5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD>
|
||||||
|
if(1)
|
||||||
|
{
|
||||||
|
std::string qvvrDir = "/FeProject/dat/qvvr/";
|
||||||
|
scanAndResendOfflineFiles(qvvrDir);
|
||||||
|
}
|
||||||
// ********** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD> **********
|
// ********** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD> **********
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD>
|
||||||
if (ptr != NULL) {
|
if (ptr != NULL) {
|
||||||
|
std::cout << "current qvvr handle response" << std::endl;
|
||||||
handleCommentResponse(std::string(ptr));
|
handleCommentResponse(std::string(ptr));
|
||||||
free(ptr);
|
free(ptr);
|
||||||
} else {
|
} else {
|
||||||
// <20><><EFBFBD><EFBFBD> ptr Ϊ NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD> ptr Ϊ NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
std::cout << "Error: Received NULL response" << std::endl;
|
std::cout << "Error: Received NULL response" << std::endl;
|
||||||
// <20>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
|
// <20>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
|
||||||
cJSON_Delete(root);
|
cJSON_Delete(root);
|
||||||
free(json_string);
|
free(json_string);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user