view data-provider.c @ 200:0e0282010be3

Fix device reset in old AD9912 interface
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Mon, 31 Mar 2014 17:03:37 +0200
parents 97112b45b838
children ec81395bf08d
line wrap: on
line source

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

#include "logging.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;


/* message callback */
void CVICALLBACK MessageCB (void *msg)
{
	if (msg != NULL)
		logmessage(INFO, 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);
}