CommandEcho.cxx
1 
9 #include "CommandEcho.h"
10 #include "AnitaPacketUtil.h"
11 #include "anitaCommand.h"
12 #include <iostream>
13 #include <fstream>
14 #include <cstring>
15 
16 ClassImp(CommandEcho);
17 
19 {
20  //Default Constructor
21 }
22 
24  //Default Destructor
25 }
26 
27 
28 CommandEcho::CommandEcho(Int_t trun, Int_t trealTime, CommandEcho_t *echoPtr)
29 {
30  simplePacketCheck(&(echoPtr->gHdr),PACKET_CMD_ECHO);
31  run=trun;
32  realTime=trealTime;
33  payloadTime=echoPtr->unixTime;
34  goodFlag=echoPtr->goodFlag;
35  numCmdBytes=echoPtr->numCmdBytes;
36  memcpy(cmd,echoPtr->cmd,sizeof(UChar_t)*MAX_CMD_LENGTH);
37  if(echoPtr->gHdr.code & CMD_FROM_PAYLOAD) {
38  fromPayload=1;
39  }
40  else {
41  fromPayload=0;
42  }
43 }
44 
45 
46 const char * CommandEcho::getCommandAsString()
47 {
48  switch(cmd[0]) {
49  case CMD_TAIL_VAR_LOG_MESSAGES:
50  return "tail /var/log/messages";
51  case CMD_TAIL_VAR_LOG_ANITA:
52  return "tail /var/log/anita.log";
53  case LOG_REQUEST_COMMAND:
54  return "log request ";
55  case JOURNALCTL_REQUEST_COMMAND:
56  return "journalctl request";
57  case CMD_START_NEW_RUN:
58  return "Start New Run";
59  case CMD_SHUTDOWN_HALT:
60  return "shutdown -h now (i.e halt the CPU)";
61  case CMD_REBOOT:
62  return "reboot";
63  case CMD_SIPD_REBOOT:
64  return "SIPd reboot";
65  case CMD_KILL_PROGS:
66  return "Kill process with mask";
67  case CMD_REALLY_KILL_PROGS:
68  return "Kill -9 process with mask";
69  case CMD_RESPAWN_PROGS:
70  return "Respawn process with mask";
71  case CMD_START_PROGS:
72  return "Start process with mask";
73  // case CMD_MOUNT:
74  // return "mount -a";
75  case CMD_DISABLE_DISK:
76  return "Disable disk";
77  case CMD_MOUNT_NEXT_USB:
78  return "Mount next usb drive";
79  // case CMD_MOUNT_NEXT_SATA:
80  // return "Mount next sata drive";
81  case CMD_EVENT_DISKTYPE:
82  return "Change Event Disk Mask";
83  case CMD_HK_DISKTYPE:
84  return "Change Hk Disk Mask";
85  case ARCHIVE_STORAGE_TYPE:
86  return "Change File Format On Disk";
87  case ARCHIVE_PRI_DISK:
88  return "Change Disk Mask for Priority";
89  case ARCHIVE_PPS_PRIORITIES:
90  return "Set Priority for PPS/Software triggers";
91  case ARCHIVE_PPS_DECIMATE:
92  return "Set Decimation for PPS/Software triggers";
93  case ARCHIVE_PRI_ENC_TYPE:
94  return "Change Disk Encoding Type for Priority";
95  case ARCHIVE_DECIMATE_PRI:
96  return "Change Decimation Fraction for Priority"; //Not implemented
97  case ARCHIVE_GLOBAL_DECIMATE:
98  return "Change Global Decimation Fraction for Priority"; //Not implemented
99  case TELEM_TYPE:
100  return "Change Telem Waveform Format";
101  case TELEM_PRI_ENC_TYPE:
102  return "Change Telem Encoding Type for Priority";
103 
104  case CMD_TURN_AMPLITES_ON:
105  return "Turn Amplites On";
106  case CMD_TURN_AMPLITES_OFF:
107  return "Turn Amplites Off";
108  case CMD_TURN_BZ_AMPAS_ON:
109  return "Turn BZ AMPAS On";
110  case CMD_TURN_BZ_AMPAS_OFF:
111  return "Turn BZ AMPAS Off";
112  case CMD_TURN_NTU_AMPAS_ON:
113  return "Turn NTU AMPAS On";
114  case CMD_TURN_NTU_AMPAS_OFF:
115  return "Turn NTU AMPAS Off";
116  case CMD_TURN_SHORT_BOARDS_ON:
117  return "Turn Short Boards On";
118  case CMD_TURN_SHORT_BOARDS_OFF:
119  return "Turn Short Boards Off";
120  case CMD_TURN_NTU_SSD_5V_ON:
121  return "Turn NTU SSD 5V On";
122  case CMD_TURN_NTU_SSD_5V_OFF:
123  return "Turn NTU SSD 5V Off";
124  case CMD_TURN_NTU_SSD_12V_ON:
125  return "Turn NTU SSD 12V On";
126  case CMD_TURN_NTU_SSD_12V_OFF:
127  return "Turn NTU SSD 12V Off";
128  case CMD_TURN_ALL_ON:
129  return "Turn All On";
130  case CMD_TURN_ALL_OFF:
131  return "Turn All Off";
132  case SET_CALIB_WRITE_PERIOD:
133  return "Set Calibd Write Period";
134  case SET_ADU5_PAT_PERIOD:
135  return "Set ADU5 Attitude Readout Period";
136  case SET_ADU5_SAT_PERIOD:
137  return "Set ADU5 Satellite Info Readout Period";
138  case SET_G12_PPS_PERIOD:
139  return "Set G12 PPS Period";
140  case SET_G12_PPS_OFFSET:
141  return "Set G12 PPS Offset";
142  case SET_ADU5_CALIBRATION_12:
143  return "Set ADU5 Calibration Vector 1->2";
144  case SET_ADU5_CALIBRATION_13:
145  return "Set ADU5 Calibration Vector 1->3";
146  case SET_ADU5_CALIBRATION_14:
147  return "Set ADU5 Calibration Vector 1->4";
148  case SET_ADU5_VTG_PERIOD:
149  return "Set ADU5 Velocity Readout Period";
150  case SET_G12_POS_PERIOD:
151  return "Set G12 Position Readout Period";
152  case SET_HK_PERIOD:
153  return "Set Acromag Housekeeping Readout Period";
154  case SET_HK_CAL_PERIOD:
155  return "Set Acromag Calibration Period";
156  case CLEAN_DIRS:
157  return "Clean Packet Dirs";
158  case SEND_CONFIG:
159  return "Send Config File Over Telemetry";
160  case DEFAULT_CONFIG:
161  return "Switch to Default Config";
162  case SWITCH_CONFIG:
163  return "Switch to Alternate Config File ";
164  case LAST_CONFIG:
165  return "Switch to Last Config File";
166  case ACQD_ADU5_TRIG_FLAG:
167  return "Set ADU5 PPS Trigger Flag";
168  case ACQD_G12_TRIG_FLAG:
169  return "Set G12 PPS Trigger Flag";
170  case ACQD_SOFT_TRIG_FLAG:
171  return "Set Software Trigger Flag";
172  case ACQD_SOFT_TRIG_PERIOD:
173  return "Set Software Trigger Period";
174  case ACQD_PEDESTAL_RUN:
175  return "Start Pedestal Run";
176  case ACQD_THRESHOLD_SCAN:
177  return "Start Threshold Scan";
178  case ACQD_REPROGRAM_TURF:
179  return "Enable TURF Reprogramming";
180  case ACQD_SURFHK_TELEM_EVERY:
181  return "Set SurfHK Telemetry Duty Factor";
182  case ACQD_TURFHK_TELEM_EVERY:
183  return "Set Turf Rate Telemetry Duty Factor";
184  case ACQD_NUM_EVENTS_PEDESTAL:
185  return "Set Number of Pedestal Events";
186  case ACQD_THRESH_SCAN_STEP_SIZE:
187  return "Set Threshold Scan Step Size";
188  case ACQD_THRESH_SCAN_POINTS_PER_STEP:
189  return "Set Threshold Scan Points Per Step";
190  case GPSD_EXTRA_COMMAND:
191  return "Extra GPSd command";
192  case SET_HK_TELEM_EVERY:
193  return "Set Hk. Telem Every";
194  case SIPD_CONTROL_COMMAND:
195  return "SIPd Control command";
196  case LOSD_CONTROL_COMMAND:
197  return "LOSd Control command";
198  case CLEAR_RAMDISK:
199  return "Clear Ramdisk";
200  case SAVE_CONFIG:
201  return "Save config";
202  case MONITORD_RAMDISK_KILL_ACQD:
203  return "Ramdisk space when we stop Acqd";
204  case MONITORD_RAMDISK_DUMP_DATA:
205  return "Ramdisk space when we clear the ramdisk";
206  case MONITORD_MAX_ACQD_WAIT:
207  return "Max time to wait before restarting Acqd";
208  case MONITORD_PERIOD:
209  return "Time between CPU Monitor packets";
210  case MONITORD_USB_THRESH:
211  return "Threshold to switch USBs";
212  // case MONITORD_SATA_THRESH:
213  // return "Threshold to switch SATAs";
214  case MONITORD_MAX_QUEUE:
215  return "Maximum inks before deleting in telem queues";
216  case MONITORD_INODES_KILL_ACQD:
217  return "Ramdisk inodes remaining before stopping Acqd";
218  case MONITORD_INODES_DUMP_DATA:
219  return "Ramdisk inodes remaining before clearing";
220  case ACQD_EXTRA_COMMAND:
221  return "Extra Acqd Commands";
222  case ACQD_RATE_COMMAND:
223  return "Acqd Rate Control Command";
224  case EVENTD_MATCH_GPS:
225  return "Eventd Match GPS";
226  case GPS_PHI_MASK_COMMAND:
227  return "GPSd Phi Mask Command";
228  case PRIORITIZERD_COMMAND:
229  return "Prioritizer Tweaking command";
230  case PLAYBACKD_COMMAND:
231  return "Playback Command";
232  default:
233  return "Unknown Command";
234 
235 
236  }
237 }
Some command related thingummies.
unsigned short goodFlag
0 is bad, 1 is good
UChar_t cmd[20]
List of command bytes.
Definition: CommandEcho.h:36
~CommandEcho()
Destructor.
Definition: CommandEcho.cxx:23
UShort_t numCmdBytes
Number of command bytes.
Definition: CommandEcho.h:35
CommandEcho()
Defualt constructor.
Definition: CommandEcho.cxx:18
CommandEcho – The command echo data.
Definition: CommandEcho.h:23
UShort_t goodFlag
Command flag value (was the command successful?)
Definition: CommandEcho.h:34
Int_t fromPayload
Was the command auto-generated or sent from the ground?
Definition: CommandEcho.h:37
Command Echo – Telemetered.
UInt_t realTime
unixTime
Definition: CommandEcho.h:32
UInt_t payloadTime
unixTime
Definition: CommandEcho.h:33
unsigned char cmd[20]
the cmd bytes
unsigned short numCmdBytes
number of cmd bytes (upto 10)
Int_t run
Assigned offline.
Definition: CommandEcho.h:31
CommandEcho_t – Yes.
int simplePacketCheck(GenericHeader_t *gHdr, PacketCode_t code)
simplePacketCheck – utility function