view autocal/rxupload.c @ 63:131abadbd74d

doc/Rx-cal-theory written
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 28 May 2017 03:21:34 +0000
parents 0bf853d1b68e
children
line wrap: on
line source

/*
 * This module contains the RF table upload code for fc-rfcal-rxband.
 */

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <endian.h>
#include <rvinterf/l1tm.h>
#include <rvinterf/exitcodes.h>
#include "rxband.h"
#include "rxtables.h"

extern struct rxcal_band *rxcal_band;
extern int Gmagic, rx_calchan_values[];

upload_gmagic()
{
	struct rx_agc_params agcparams;

	do_rftr(RX_AGC_PARAMS, &agcparams, sizeof agcparams);
	agcparams.g_magic = htole16(Gmagic);
	do_rftw(RX_AGC_PARAMS, &agcparams, sizeof agcparams);
	return(0);
}

upload_rx_calchan()
{
	unsigned n;
	struct rx_calchan_entry calchan_table[RX_CALCHAN_ENTRIES];

	for (n = 0; n < rxcal_band->num_calchan_ranges; n++) {
		calchan_table[n].upper_bound =
			htole16(rxcal_band->calchan_ranges[n].upper_bound);
		calchan_table[n].agc_calib = htole16(rx_calchan_values[n]);
	}
	for (; n < RX_CALCHAN_ENTRIES; n++) {
		calchan_table[n].upper_bound = 0;
		calchan_table[n].agc_calib = 0;
	}
	do_rftw(RX_CAL_CHAN, calchan_table, sizeof calchan_table);
	return(0);
}