annotate cmu200/vcxocal.c @ 7:948031e6de50

fc-cmu200d: vcxo-cal-setup implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 May 2017 08:03:35 +0000
parents
children c873a36a16e6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This module implements the VCXO calibration support functionality.
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 */
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 #include <stdio.h>
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <stdlib.h>
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <string.h>
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <strings.h>
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include "mode.h"
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include "band.h"
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 extern char *client_cmd_fields[];
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 extern int client_cmd_nfields;
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 extern int current_mode;
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 extern struct band *current_band;
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 cmd_vcxo_cal_setup()
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 {
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 int rc;
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 unsigned arfcn;
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 char cmdstr[32];
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 if (client_cmd_nfields != 3) {
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 send_socket_response("-Wrong number of arguments\n");
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 return(0);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 }
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 stop_signal_gen();
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 current_mode = OP_MODE_UNDEF;
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 rc = find_named_band(client_cmd_fields[1]);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 if (rc < 0) {
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 send_socket_response("-Invalid band argument\n");
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 return(0);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 }
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 arfcn = atoi(client_cmd_fields[2]);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 if (verify_arfcn(arfcn, 0, 0) < 0) {
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 send_socket_response("-Invalid ARFCN\n");
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 return(0);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 }
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 sprintf(cmdstr, "*SEC %d\n", current_band->secaddr);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 send_scpi_cmd(cmdstr);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 sprintf(cmdstr, "RFAN:CHAN %uCH\n", arfcn);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 send_scpi_cmd(cmdstr);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 send_scpi_cmd("RFAN:TSEQ GSM5\n");
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 current_mode = OP_MODE_VCXO_CAL;
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 send_socket_response("+OK\n");
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 return(0);
948031e6de50 fc-cmu200d: vcxo-cal-setup implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 }