view rvinterf/tmsh/rftablechk.c @ 497:74610c4f10f7

target-utils: added 10 ms delay at the end of abb_power_off() The deosmification of the ABB access code (replacement of osmo_delay_ms() bogus delays with correctly-timed ones, which are significantly shorter) had one annoying side effect: when executing the poweroff command from any of the programs, one last '=' prompt character was being sent (and received by the x86 host) as the Calypso board powers off. With delays being shorter now, the abb_power_off() function was returning and the standalone program's main loop was printing its prompt before the Iota chip fully executed the switch-off sequence! I thought about inserting an endless tight loop at the end of the abb_power_off() function, but the implemented solution of a 10 ms delay is a little nicer IMO because if the DEVOFF operation doesn't happen for some reason in a manual hacking scenario, there won't be an artificial blocker in the form of a tight loop keeping us from further poking around.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 25 May 2019 20:44:05 +0000
parents bc23c1cd30ae
children
line wrap: on
line source

/*
 * This module contains the function that checks if the table format
 * and rftw index match.
 */

#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include "localtypes.h"
#include "l1tm.h"
#include "exitcodes.h"

static struct table_match {
	int	index;
	char	*format;
} matchlist[] = {
	{RX_AGC_TABLE, "agc-table"},
	{AFC_PARAMS, "afcparams"},
	{RX_AGC_GLOBAL_PARAMS, "agc-global-params"},
	{RX_IL_2_AGC_MAX, "il2agc"},
	{RX_IL_2_AGC_PWR, "il2agc"},
	{RX_IL_2_AGC_AV, "il2agc"},
	{TX_LEVELS, "tx-levels"},
	{TX_CAL_CHAN, "tx-calchan"},
	{TX_CAL_TEMP, "tx-caltemp"},
	{RX_CAL_CHAN, "rx-calchan"},
	{RX_CAL_TEMP, "rx-caltemp"},
	{RX_AGC_PARAMS, "rx-agc-params"},
	{0, 0}
};

rftw_index_format_check(index, format)
	char *format;
{
	struct table_match *tp;

	if (!strcmp(format, "raw"))
		return(0);
	for (tp = matchlist; tp->index; tp++) {
		if (tp->index == index) {
			if (!strcmp(format, tp->format))
				return(0);
			printf("error: read table of type %s, expected %s\n",
				format, tp->format);
			return(ERROR_USAGE);
		}
	}
	return(0);
}