view data-provider.c @ 247:2fc4ac8017af

Instruct Emacs to follow Labwindow CVI coding style
author Daniele Nicolodi <daniele@grinta.net>
date Fri, 27 Feb 2015 18:55:19 +0100
parents ec81395bf08d
children
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 */
static void CVICALLBACK send_message_callback(void *msg)
{
	if (msg != NULL)
		logmessage(INFO, msg);
}


void send_message(int thread, 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(send_message_callback, message, thread);
}