view data-provider.c @ 165:05daf9593946

New build
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Mon, 10 Feb 2014 15:19:34 +0100
parents be87c8e78266
children 97112b45b838
line wrap: on
line source

#include <ansi_c.h>
#include <userint.h>

/* message buffer */
#define DATA_PROVIDER_MSGLEN 256
#define DATA_PROVIDER_MSGNUM 16
static char messages[DATA_PROVIDER_MSGLEN][DATA_PROVIDER_MSGNUM];
static unsigned int messageid = 0;

/* logging function defined in main program */
extern void logmsg(const char *frmt, ...);

/* message callback */
void CVICALLBACK MessageCB (void *msg)
{
	if (msg != NULL)
		logmsg(msg);
}

void SendMessage(int threadId, const char *frmt, ...)
{
	/* message buffer */
	char *message = messages[messageid++ % DATA_PROVIDER_MSGNUM];
	
	/* format message */
	va_list args;
	va_start(args, frmt);
	vsnprintf(message, DATA_PROVIDER_MSGLEN - 1, frmt, args);
	va_end(args);
	
	/* signal main thread */
	PostDeferredCallToThread(MessageCB, message, threadId);
}