sync uiot bugfix
This commit is contained in:
parent
11f1b46432
commit
09c3690ac3
|
@ -21,5 +21,5 @@ all :
|
||||||
cp $(LIB_CJSON_TAR)/cJSON.h $(LIB_CJSON_DIR)
|
cp $(LIB_CJSON_TAR)/cJSON.h $(LIB_CJSON_DIR)
|
||||||
|
|
||||||
clean :
|
clean :
|
||||||
cd $(LIB_NATS_TAR) && $(MAKE) clean
|
rm -rf $(LIB_NATS_TAR)
|
||||||
cd $(LIB_CJSON_TAR) && $(MAKE) clean
|
rm -rf $(LIB_CJSON_TAR)
|
||||||
|
|
|
@ -479,7 +479,7 @@ void log_print(const char *format,...)
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
va_start(args, format);
|
va_start(args, format);
|
||||||
printf(format, args);
|
vprintf(format, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
@ -491,7 +491,7 @@ void log_write(log_level level, const char *format,...)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const char *log_lev[5] = {"debug", "info", "warn", "error"};
|
const char *log_lev[4] = {"debug", "info", "warn", "error"};
|
||||||
struct timeval stamp;
|
struct timeval stamp;
|
||||||
char *msg_str_rep = (char *)EDGE_MALLOC(NATS_MSG_MAX_LEN);
|
char *msg_str_rep = (char *)EDGE_MALLOC(NATS_MSG_MAX_LEN);
|
||||||
if(NULL == msg_str_rep)
|
if(NULL == msg_str_rep)
|
||||||
|
|
|
@ -266,19 +266,4 @@ void natsMutex_Destroy(natsMutex *m)
|
||||||
EDGE_FREE(m);
|
EDGE_FREE(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
void natsTimer_Init(nats_timer *pst_nats_timer, timer_handle timer_handle_func)
|
|
||||||
{
|
|
||||||
struct itimerval timer;
|
|
||||||
|
|
||||||
timer.it_interval.tv_sec = pst_nats_timer->interval_sec;
|
|
||||||
timer.it_interval.tv_usec = pst_nats_timer->interval_usec;
|
|
||||||
timer.it_value.tv_sec = pst_nats_timer->effect_sec;
|
|
||||||
timer.it_value.tv_usec = pst_nats_timer->effect_usec;
|
|
||||||
|
|
||||||
setitimer(ITIMER_REAL, &timer, NULL);//让它产生SIGVTALRM信号
|
|
||||||
|
|
||||||
//为SIGALRM注册信号处理函数
|
|
||||||
signal(SIGALRM, timer_handle_func);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -81,8 +81,7 @@ natsStatus natsMutex_Create(natsMutex **newMutex);
|
||||||
void natsMutex_Lock(natsMutex *m);
|
void natsMutex_Lock(natsMutex *m);
|
||||||
void natsMutex_Unlock(natsMutex *m);
|
void natsMutex_Unlock(natsMutex *m);
|
||||||
void natsMutex_Destroy(natsMutex *m);
|
void natsMutex_Destroy(natsMutex *m);
|
||||||
typedef void (* timer_handle)(int signo);
|
|
||||||
void natsTimer_Init(nats_timer *pst_nats_timer, timer_handle timer_handle_func);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
30
edge/edge.c
30
edge/edge.c
|
@ -460,7 +460,7 @@ static int _subdev_client_match(void *a, void *b)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _handle_status_sync(int signo)
|
static void _handle_status_sync(union sigval v)
|
||||||
{
|
{
|
||||||
edge_status status;
|
edge_status status;
|
||||||
char *device_list_msg = (char *)EDGE_MALLOC(NATS_MSG_MAX_LEN);
|
char *device_list_msg = (char *)EDGE_MALLOC(NATS_MSG_MAX_LEN);
|
||||||
|
@ -549,17 +549,33 @@ static void _handle_status_sync(int signo)
|
||||||
|
|
||||||
static void _fetch_online_status(void)
|
static void _fetch_online_status(void)
|
||||||
{
|
{
|
||||||
nats_timer nats_timer;
|
struct sigevent evp;
|
||||||
nats_timer.interval_sec = 15;
|
struct itimerspec ts;
|
||||||
nats_timer.interval_usec = 0;
|
timer_t timer;
|
||||||
nats_timer.effect_sec = 15;
|
int ret;
|
||||||
nats_timer.effect_usec = 0;
|
|
||||||
|
|
||||||
natsTimer_Init(&nats_timer, _handle_status_sync);
|
memset(&evp, 0, sizeof(evp));
|
||||||
|
evp.sigev_value.sival_ptr = &timer;
|
||||||
|
evp.sigev_notify = SIGEV_THREAD;
|
||||||
|
evp.sigev_notify_function = _handle_status_sync;
|
||||||
|
evp.sigev_value.sival_int = 0;
|
||||||
|
|
||||||
|
ret = timer_create(CLOCK_REALTIME, &evp, &timer);
|
||||||
|
if(ret)
|
||||||
|
perror("timer_create");
|
||||||
|
|
||||||
|
ts.it_interval.tv_sec = 15;
|
||||||
|
ts.it_interval.tv_nsec = 0;
|
||||||
|
ts.it_value.tv_sec = 15;
|
||||||
|
ts.it_value.tv_nsec = 0;
|
||||||
|
|
||||||
|
ret = timer_settime(timer, 0, &ts, NULL);
|
||||||
|
if( ret )
|
||||||
|
perror("timer_settime");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
edge_status edge_common_init(void)
|
edge_status edge_common_init(void)
|
||||||
{
|
{
|
||||||
edge_status status;
|
edge_status status;
|
||||||
|
|
|
@ -188,6 +188,7 @@ int main(int argc, char **argv)
|
||||||
log_write(LOG_DEBUG, "send message[%s]", time_stamp);
|
log_write(LOG_DEBUG, "send message[%s]", time_stamp);
|
||||||
|
|
||||||
status = edge_publishString(topic_str, time_stamp);
|
status = edge_publishString(topic_str, time_stamp);
|
||||||
|
//spuuprt publish binary message
|
||||||
status |= edge_publish(topic_str, "0D0A2131", 8);
|
status |= edge_publish(topic_str, "0D0A2131", 8);
|
||||||
if(EDGE_OK != status)
|
if(EDGE_OK != status)
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,7 @@ target = iotstack_driver_test
|
||||||
all : $(target)
|
all : $(target)
|
||||||
|
|
||||||
$(target) :
|
$(target) :
|
||||||
$(CC) -o $(target) $(src) $(LIBS) $(INCLUDE) $(CFLAGS)
|
$(CC) -o $(target) $(src) $(LIBS) $(INCLUDE) $(CFLAGS) -lrt
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-$(RM) $(target) $(target).o
|
-$(RM) $(target) $(target).o
|
||||||
|
|
Loading…
Reference in New Issue