view dds.h @ 207:9e0c3541104b

Move common AD99xx code to dds.{ch}
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Mon, 31 Mar 2014 17:03:38 +0200
parents c700a2d38fb8
children fcc988c6f841
line wrap: on
line source

#ifndef __FXANALYSE_DDS_H__
#define __FXANALYSE_DDS_H__

#define usleep(t) Delay((t) / 1000000.0)
#define strdup(s) StrDup(s)
#define streq(x, y) (strcmp((x), (y)) == 0)

typedef unsigned long long uint64;

static inline uint64 ftw(double clock, double freq)
{
	uint64 ftw = freq * ((double)(1ULL << 48) / clock);
	return ftw;
}

static inline double freq(double clock, uint64 ftw)
{
	double freq = (double)ftw * (clock / (double)(1ULL << 48));
	return freq;
}

static inline int strtouint64(const char *str, uint64 *v)
{
	char *end;
	*v = strtoull(str, &end, 0);
	if (*end != '\0')
		return -1;
	return 0;
}

int msend(int fd, char *buffer, int n);
int mrecv(int fd, char *buffer, int len);
int command(int fd, char *frmt, ...);

#endif