By Techapirant , 8 November, 2019 Forums Gurux.DLMS Hello, While reading data of profile generic using below command how can i pass start time and end time as string ? com_readRowsByRange(&con, pg, &startTime.value, &endTime.value); Hi, Hi, You must convert string to struct tm. This depends on the operating system and compiler, etc.. BR, Mikko Hello, Hello, I am using gcc compiler and Linux Ubuntu 64 Bit OS Below is my code I am using but getting error /* Start Time */ char *global_starttime = "2008-12-10 10:00:00"; struct tm *parsedTime; int year, month, day, hour, minute, second; if(sscanf(global_starttime, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second) != EOF){ time_t rawTime; time(&rawTime); parsedTime = localtime(&rawTime); parsedTime->tm_year = year; parsedTime->tm_mon = month; parsedTime->tm_mday = day; parsedTime->tm_hour = hour; parsedTime->tm_min = minute; parsedTime->tm_sec = second; } /* End Time */ char *global_endtime = "2008-12-11 10:00:00"; struct tm *parsedTime_endtime; if(sscanf(global_endtime, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second) != EOF){ time_t rawTime; time(&rawTime); parsedTime_endtime = localtime(&rawTime); parsedTime_endtime->tm_year = year; parsedTime_endtime->tm_mon = month; parsedTime_endtime->tm_mday = day; parsedTime_endtime->tm_hour = hour; parsedTime_endtime->tm_min = minute; parsedTime_endtime->tm_sec = second; } time_init2(&startTime,&parsedTime); time_init2(&endTime,&parsedTime_endtime); Error : time_init Assertion 0 failed Hi, Hi, Change this: struct tm *parsedTime; to: struct tm parsedTime; and try again. BR, Mikko
Hi, Hi, You must convert string to struct tm. This depends on the operating system and compiler, etc.. BR, Mikko
Hello, Hello, I am using gcc compiler and Linux Ubuntu 64 Bit OS Below is my code I am using but getting error /* Start Time */ char *global_starttime = "2008-12-10 10:00:00"; struct tm *parsedTime; int year, month, day, hour, minute, second; if(sscanf(global_starttime, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second) != EOF){ time_t rawTime; time(&rawTime); parsedTime = localtime(&rawTime); parsedTime->tm_year = year; parsedTime->tm_mon = month; parsedTime->tm_mday = day; parsedTime->tm_hour = hour; parsedTime->tm_min = minute; parsedTime->tm_sec = second; } /* End Time */ char *global_endtime = "2008-12-11 10:00:00"; struct tm *parsedTime_endtime; if(sscanf(global_endtime, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second) != EOF){ time_t rawTime; time(&rawTime); parsedTime_endtime = localtime(&rawTime); parsedTime_endtime->tm_year = year; parsedTime_endtime->tm_mon = month; parsedTime_endtime->tm_mday = day; parsedTime_endtime->tm_hour = hour; parsedTime_endtime->tm_min = minute; parsedTime_endtime->tm_sec = second; } time_init2(&startTime,&parsedTime); time_init2(&endTime,&parsedTime_endtime); Error : time_init Assertion 0 failed
Hi,
Hi,
You must convert string to struct tm. This depends on the operating system and compiler, etc..
BR,
Mikko
Hello,
Hello,
I am using gcc compiler and Linux Ubuntu 64 Bit OS
Below is my code I am using but getting error
/* Start Time */
char *global_starttime = "2008-12-10 10:00:00";
struct tm *parsedTime;
int year, month, day, hour, minute, second;
if(sscanf(global_starttime, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second) != EOF){
time_t rawTime;
time(&rawTime);
parsedTime = localtime(&rawTime);
parsedTime->tm_year = year;
parsedTime->tm_mon = month;
parsedTime->tm_mday = day;
parsedTime->tm_hour = hour;
parsedTime->tm_min = minute;
parsedTime->tm_sec = second;
}
/* End Time */
char *global_endtime = "2008-12-11 10:00:00";
struct tm *parsedTime_endtime;
if(sscanf(global_endtime, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second) != EOF){
time_t rawTime;
time(&rawTime);
parsedTime_endtime = localtime(&rawTime);
parsedTime_endtime->tm_year = year;
parsedTime_endtime->tm_mon = month;
parsedTime_endtime->tm_mday = day;
parsedTime_endtime->tm_hour = hour;
parsedTime_endtime->tm_min = minute;
parsedTime_endtime->tm_sec = second;
}
time_init2(&startTime,&parsedTime);
time_init2(&endTime,&parsedTime_endtime);
Error : time_init Assertion 0 failed
Hi,
Hi,
Change this:
struct tm *parsedTime;
to:
struct tm parsedTime;
and try again.
BR,
Mikko