changeset 42:dcf7cd305e2b

fc-rfcal-gmagic started
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 27 May 2017 05:04:14 +0000
parents 3f4221ef916a
children 8c7b0ba1e5c4
files .hgignore autocal/Makefile autocal/gmagicmain.c autocal/stdband.h
diffstat 4 files changed, 73 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Sat May 27 02:43:43 2017 +0000
+++ b/.hgignore	Sat May 27 05:04:14 2017 +0000
@@ -2,6 +2,7 @@
 
 \.[oa]$
 
+^autocal/fc-rfcal-gmagic$
 ^autocal/fc-rfcal-vcxo$
 
 ^cmu200/fc-cmu200d$
--- a/autocal/Makefile	Sat May 27 02:43:43 2017 +0000
+++ b/autocal/Makefile	Sat May 27 05:04:14 2017 +0000
@@ -1,12 +1,16 @@
 CC=	gcc
 CFLAGS=	-O2 -I/opt/freecalypso/include
-PROGS=	fc-rfcal-vcxo
+PROGS=	fc-rfcal-gmagic fc-rfcal-vcxo
 INSTBIN=/opt/freecalypso/bin
 
+GMAGIC_OBJS=	gmagicmain.o l1tmops.o rvinterf.o sockopts.o tsidsock.o
 VCXO_OBJS=	l1tmops.o rvinterf.o sockopts.o tsidsock.o vcxomain.o vcxomeas.o
 
 all:	${PROGS}
 
+fc-rfcal-gmagic:	${GMAGIC_OBJS}
+	${CC} -o $@ ${GMAGIC_OBJS}
+
 fc-rfcal-vcxo:	${VCXO_OBJS}
 	${CC} -o $@ ${VCXO_OBJS}
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/autocal/gmagicmain.c	Sat May 27 05:04:14 2017 +0000
@@ -0,0 +1,62 @@
+/*
+ * This module contains the main() function for fc-rfcal-gmagic.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <rvinterf/l1tm.h>
+#include <rvinterf/exitcodes.h>
+#include "stdband.h"
+
+static struct band {
+	char		*name;
+	unsigned	rfpw_std_band;
+	unsigned	default_arfcn;
+} bands[] = {
+	{"850",  RFPW_STD_BAND_850,  189},
+	{"900",  RFPW_STD_BAND_900,   37},
+	{"1800", RFPW_STD_BAND_1800, 698},
+	{"1900", RFPW_STD_BAND_1900, 661},
+	{0,	 0,		     0}
+};
+static struct band *selected_band;
+static unsigned arfcn;
+
+finish_cmdline(argc, argv)
+	char **argv;
+{
+	extern int optind;
+	struct band *band;
+
+	if (argc - optind < 1 || argc - optind > 2) {
+		fprintf(stderr, "usage: %s band [arfcn]\n", argv[0]);
+		exit(ERROR_USAGE);
+	}
+	for (band = bands; band->name; band++)
+		if (!strcmp(band->name, argv[optind]))
+			break;
+	if (!band->name) {
+		fprintf(stderr, "error: \"%s\" is not a known band\n",
+			argv[optind]);
+		exit(ERROR_USAGE);
+	}
+	selected_band = band;
+	if (argv[optind+1])
+		arfcn = atoi(argv[optind+1]);
+	else
+		arfcn = band->default_arfcn;
+	return(0);
+}
+
+main(argc, argv)
+	char **argv;
+{
+	socket_pathname_options(argc, argv);
+	finish_cmdline(argc, argv);
+	connect_rvinterf_socket();
+	connect_tsid_socket();
+
+
+}
--- a/autocal/stdband.h	Sat May 27 02:43:43 2017 +0000
+++ b/autocal/stdband.h	Sat May 27 05:04:14 2017 +0000
@@ -1,3 +1,8 @@
 /* macro for encoding std and band in rfpw 7 command */
 
 #define	RFPW_STD_BAND(std,band)	((std) | ((band) << 8))
+
+#define	RFPW_STD_BAND_850	RFPW_STD_BAND(7, 0)
+#define	RFPW_STD_BAND_900	RFPW_STD_BAND(2, 0)
+#define	RFPW_STD_BAND_1800	RFPW_STD_BAND(4, 0)
+#define	RFPW_STD_BAND_1900	RFPW_STD_BAND(3, 0)