FreeCalypso > hg > fc-rfcal-tools
view cmu200/dispatch.c @ 13:d7e436bf4876
starting autocal
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 May 2017 22:58:04 +0000 |
parents | c873a36a16e6 |
children | 2fb9768fc1e2 |
line wrap: on
line source
/* * This module contains the code that dispatches client commands. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> extern char *client_cmd_fields[]; extern int client_cmd_nfields; extern int cmd_freq_meas(); extern int cmd_signal_gen_off(); extern int cmd_signal_gen_sine(); extern int cmd_signal_gen_setup(); extern int cmd_vcxo_cal_setup(); cmd_ping() { send_socket_response("+Pong\n"); return(0); } static struct cmdtab { char *cmd_kw; int (*handler)(); } cmdtab[] = { {"freq-meas", cmd_freq_meas}, {"ping", cmd_ping}, {"signal-gen-off", cmd_signal_gen_off}, {"signal-gen-sine", cmd_signal_gen_sine}, {"signal-gen-setup", cmd_signal_gen_setup}, {"vcxo-cal-setup", cmd_vcxo_cal_setup}, {0, 0} }; dispatch_client_command() { struct cmdtab *tp; for (tp = cmdtab; tp->cmd_kw; tp++) if (!strcmp(client_cmd_fields[0], tp->cmd_kw)) break; if (tp->handler) return tp->handler(); send_socket_response("-Unknown or unimplemented command\n"); return(0); }