ccNOos  v0.0.0
Build Portable Microcontroller Applications!
MenuAPI.c
Go to the documentation of this file.
1 /** \file MenuAPI.c
2 * \brief <a href="https://www.inmechasol.org/" target="_blank">IMS</a>:
3  <a href="https://github.com/InMechaSol/ccNOos" target="_blank">ccNOos</a>,
4  Implementation for straight C
5 
6  Copyright 2021 <a href="https://www.inmechasol.org/" target="_blank">InMechaSol, Inc</a>
7 
8  Licensed under the Apache License, Version 2.0(the "License");
9  you may not use this file except in compliance with the License.
10  You may obtain a copy of the License at
11 
12  http://www.apache.org/licenses/LICENSE-2.0
13 
14  Unless required by applicable law or agreed to in writing, software
15  distributed under the License is distributed on an "AS IS" BASIS,
16  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  See the License for the specific language governing permissions and
18  limitations under the License.
19 
20 Notes:
21  (.c includes .h) - for straight C or
22  (.cpp includes .c which includes .h) - for C++ wrapped straight C
23  *Always compiled to a single compilation unit, either C or CPP, not both
24 
25 */
26 
27 #include "LCDapi.h"
28 
29 void writeUIHelpString(struct uiStruct* uiStructPtrIn)
30 {
31  if (uiStructPtrIn->showHelp == ui8TRUE)
32  {
33  OPENSWITCH(uiStructPtrIn)
34  case 0:
35  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "Help", terminalSlashes() END_MENU_LN;
36  case 1:
37  PRINT_MENU_LN "\n%sSatComACS; \tto display Main Menu", cursorString(0) END_MENU_LN;
38  case 2:
39  PRINT_MENU_LN "\n%sTerminal; \tto display Terminal Menu", cursorString(0) END_MENU_LN;
40  case 3:
41  PRINT_MENU_LN "\n%sDevices; \tto display Devices Menu", cursorString(0) END_MENU_LN;
42  case 4:
43  PRINT_MENU_LN "\n%sHelp; \tto display This View", cursorString(0) END_MENU_LN;
44  case 5:
45  PRINT_MENU_LN "\n%sUserLevel:Operator; \n\tto set current user level", cursorString(0) END_MENU_LN;
46  case 6:
47  PRINT_MENU_LN "\n%s; \t\tto Refresh Current View", cursorString(0) END_MENU_LN;
48  case 7:
49  PRINT_MENU_LN "\n%s %s - %s ", terminalSlashes(), xstr(Mn), "Key Pad Help" END_MENU_LN;
50  case 8:
51  PRINT_MENU_LN "\n%s7 Home\t8 Up", cursorString(0) END_MENU_LN;
52  case 9:
53  PRINT_MENU_LN "\n%s4 Back\t5 Action 6 Forward", cursorString(0) END_MENU_LN;
54  case 10:
55  PRINT_MENU_LN "\n%s1 Main\t2 Down", cursorString(0) END_MENU_LN;
56  default:
57  CLOSESWITCH(uiStructPtrIn)
58  uiStructPtrIn->showHelp = ui8FALSE;
59  }
60 }
61 const char* terminalPromptString(int userLevelIndex)
62 {
63  switch ((enum uiAccessLevel)userLevelIndex)
64  {
65  case uiLevel_Developer: return "\n(Developer)>>";
66  case uiLevel_Administrator: return "\n(Administrator)>>";
67  case uiLevel_Operator: return "\n(Operator)>>";
68  case uiLevel_Observer: return "\n(Observer)>>";
69  default: return "\n>>";
70  }
71 }
72 
73 void parseUserLevel(struct uiStruct* uiStructPtrIn)
74 {
75 
76  OPENIF("UserLevel", uiStructPtrIn->currentMenuIndex)
77 
78  if (stringMatchCaseSensitive(&uiStructPtrIn->devptr->inbuff.charbuff[uiStructPtrIn->parseIndex], "Developer") == ui8TRUE)
79  uiStructPtrIn->currentUserLevel = uiLevel_Developer;
80  else if (stringMatchCaseSensitive(&uiStructPtrIn->devptr->inbuff.charbuff[uiStructPtrIn->parseIndex], "Operator") == ui8TRUE)
81  uiStructPtrIn->currentUserLevel = uiLevel_Operator;
82  else if (stringMatchCaseSensitive(&uiStructPtrIn->devptr->inbuff.charbuff[uiStructPtrIn->parseIndex], "Administrator") == ui8TRUE)
83  uiStructPtrIn->currentUserLevel = uiLevel_Administrator;
84  else if (stringMatchCaseSensitive(&uiStructPtrIn->devptr->inbuff.charbuff[uiStructPtrIn->parseIndex], "Observer") == ui8TRUE)
85  uiStructPtrIn->currentUserLevel = uiLevel_Observer;
86 
87  CLOSEIF("UserLevel", uiStructPtrIn->currentMenuIndex)
88 }
89 
90 void goParsedAction(enum currentMenuAction theCurrentAction, struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
91 {
92  switch (theCurrentAction)
93  {
94  case cA_Down:uiStructPtrIn->cursorIndex++; break;
95  case cA_Up:uiStructPtrIn->cursorIndex--; break;
96  case cA_Forward: break;
97  case cA_Back: break;
98  case cA_Enter: break;
99  case cA_Status: break;
100  }
101 }
102 
103 void parseConsoleKeyPadAPI(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
104 {
105  enum currentMenuAction theCurrentAction = cA_NoAction;
106  // Down
107  KEYIF("2", cA_Down)
108  // Up
109  KEYIF("8", cA_Up);
110  // Forward
111  KEYIF("6", cA_Forward);
112  // Back
113  KEYIF("4", cA_Back);
114  // Enter
115  KEYIF("5", cA_Enter);
116  // Status
117  KEYIF("7", cA_Status);
118  goParsedAction(theCurrentAction, satcomacsStructPtrIn, uiStructPtrIn);
119 
120 }
121 // SatComACS
122 void parseGroupSatComACS(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
123 {
124  if (uiStructPtrIn == &satcomacsStructPtrIn->ConsoleMenu)
125  {
126  parseConsoleKeyPadAPI(satcomacsStructPtrIn, uiStructPtrIn);
127  parseTerminalMenuAPI(&satcomacsStructPtrIn->Terminal, uiStructPtrIn);
128  parseAPTMenuAPI(&satcomacsStructPtrIn->APT, uiStructPtrIn);
129  parseTPMMenuAPI(&satcomacsStructPtrIn->TPM, uiStructPtrIn);
130  parseTxRxMenuAPI(&satcomacsStructPtrIn->TxRx, uiStructPtrIn);
131  parseUserLevel(uiStructPtrIn);
132  if (stringMatchCaseSensitive(&uiStructPtrIn->devptr->inbuff.charbuff[uiStructPtrIn->parseIndex], "Help") == ui8TRUE)
133  uiStructPtrIn->showHelp = ui8TRUE;
134  }
135  else if (uiStructPtrIn == &satcomacsStructPtrIn->LCDKeyPad)
136  {
137  parseLCDKeyPadAPI(satcomacsStructPtrIn, uiStructPtrIn);
138  }
139 
140 }
141 void parseSatComACSMenuAPI(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
142 {
143  //(Status) SatComACS; to see cM_MainMenu screen
144  OPENIF("SatComACS", cM_MainMenu)
145  //(Status) SatComACS:Terminal:State;
146  //(Command) SatComACS:Terminal:State:antState_init;
147  //(Command) SatComACS:APT:GPS:Connected:0;
148  parseGroupSatComACS(satcomacsStructPtrIn, uiStructPtrIn);
149  CLOSEIF("SatComACS", cM_MainMenu)
150  //(Status) Terminal:State;
151  //(Command) Terminal:State:antState_init;
152  //(Command) APT:GPS:Connected:0;
153  parseGroupSatComACS(satcomacsStructPtrIn, uiStructPtrIn);
154 }
155 void writeSatComACSMenuScreenConsole(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
156 {
157  OPENSWITCH(uiStructPtrIn)
158  case 0:
159  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "Main", terminalSlashes() END_MENU_LN;
160  case 1:
161  PRINT_MENU_LN "\n%sTerminal", cursorString(uiStructPtrIn->cursorIndex == 0) END_MENU_LN;
162  case 2:
163  PRINT_MENU_LN "\n%sDevices", cursorString(uiStructPtrIn->cursorIndex == 1) END_MENU_LN;
164  case 3:
165  PRINT_MENU_LN "\n%sExecution System", cursorString(uiStructPtrIn->cursorIndex == 2) END_MENU_LN;
166  default:
167  CLOSESWITCH(uiStructPtrIn)
168 }
169 void writeSatComACSMenuScreenLCDBig(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
170 {
171  OPENSWITCH(uiStructPtrIn)
172  case 0:
173  PRINT_MENU_LN "\n%s - %s Menu", xstr(Mn), "Main" END_MENU_LN;
174  case 1:
175  PRINT_MENU_LN "\n%sTerminal", cursorString(uiStructPtrIn->cursorIndex == 0) END_MENU_LN;
176  case 2:
177  PRINT_MENU_LN "\n%sDevices", cursorString(uiStructPtrIn->cursorIndex == 1) END_MENU_LN;
178  default:
179  CLOSESWITCH(uiStructPtrIn)
180 }
181 void writeSatComACSMenuScreenLCDSmall(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
182 {
183  OPENSWITCH(uiStructPtrIn)
184  case 0:
185  PRINT_MENU_LN "\n%sTerminal", cursorString(uiStructPtrIn->cursorIndex == 0) END_MENU_LN;
186  case 1:
187  PRINT_MENU_LN "\n%sDevices", cursorString(uiStructPtrIn->cursorIndex == 1) END_MENU_LN;
188  default:
189  CLOSESWITCH(uiStructPtrIn)
190 }
191 void writeSatComACSMenuScreen(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
192 {
193  switch (uiStructPtrIn->viewFormatIndex)
194  {
195  case cV_Console: writeSatComACSMenuScreenConsole(satcomacsStructPtrIn, uiStructPtrIn); break;
196  case cv_LCD4_40: writeSatComACSMenuScreenLCDBig(satcomacsStructPtrIn, uiStructPtrIn); break;
197  case cv_LCD2_40: writeSatComACSMenuScreenLCDSmall(satcomacsStructPtrIn, uiStructPtrIn); break;
198  }
199 }
200 
201 // SatComACS:Devices
202 void parseSatComACSDevicesMenuAPI(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
203 {
204  parseSatComACSMenuAPI(satcomacsStructPtrIn, uiStructPtrIn);
205 }
206 void writeSatComACSDevicesMenuScreenConsole(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
207 {
208  OPENSWITCH(uiStructPtrIn)
209  case 0:
210  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "Devices", terminalSlashes() END_MENU_LN;
211  case 1:
212  PRINT_MENU_LN "\n%sAPT WMM Device", cursorString(uiStructPtrIn->cursorIndex == 0) END_MENU_LN;
213  case 2:
214  PRINT_MENU_LN "\n%sTPM Device", cursorString(uiStructPtrIn->cursorIndex == 1) END_MENU_LN;
215  case 3:
216  PRINT_MENU_LN "\n%sTxRx Device", cursorString(uiStructPtrIn->cursorIndex == 2) END_MENU_LN;
217  default:
218  CLOSESWITCH(uiStructPtrIn)
219 }
220 void writeSatComACSDevicesMenuScreenLCDBig(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
221 {
222  OPENSWITCH(uiStructPtrIn)
223  case 0:
224  PRINT_MENU_LN "\n%s - %s Menu ", xstr(Mn), "Devices" END_MENU_LN;
225  case 1:
226  PRINT_MENU_LN "\n%sAPT WMM Device", cursorString(uiStructPtrIn->cursorIndex == 0) END_MENU_LN;
227  case 2:
228  PRINT_MENU_LN "\n%sTPM Device", cursorString(uiStructPtrIn->cursorIndex == 1) END_MENU_LN;
229  case 3:
230  PRINT_MENU_LN "\n%sTxRx Device", cursorString(uiStructPtrIn->cursorIndex == 2) END_MENU_LN;
231  default:
232  CLOSESWITCH(uiStructPtrIn)
233 }
234 void writeSatComACSDevicesMenuScreenLCDSmall(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
235 {
236  OPENSWITCH(uiStructPtrIn)
237  case 0:
238  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "Devices", terminalSlashes() END_MENU_LN;
239  case 1:
240  PRINT_MENU_LN "\n%sAPT WMM Device", cursorString(uiStructPtrIn->cursorIndex == 0) END_MENU_LN;
241  default:
242  CLOSESWITCH(uiStructPtrIn)
243 }
244 void writeSatComACSDevicesMenuScreen(struct SatComACSStruct* satcomacsStructPtrIn, struct uiStruct* uiStructPtrIn)
245 {
246  switch (uiStructPtrIn->viewFormatIndex)
247  {
248  case cV_Console: writeSatComACSDevicesMenuScreenConsole(satcomacsStructPtrIn, uiStructPtrIn); break;
249  case cv_LCD4_40: writeSatComACSDevicesMenuScreenLCDBig(satcomacsStructPtrIn, uiStructPtrIn); break;
250  case cv_LCD2_40: writeSatComACSDevicesMenuScreenLCDSmall(satcomacsStructPtrIn, uiStructPtrIn); break;
251  }
252 }
253 
254 // SatComControl: antennaStruct
255 const char* currentStateString(struct antennaStruct* terminalStructPtrIn)
256 {
257  switch (terminalStructPtrIn->State)
258  {
259  case antState_init: return "Initialization";
260  case antState_NotAcquired: return "Not Acquiring";
261  case antState_Acquiring: return "Acquiring";
262  case antState_Acquired: return "Acquired";
263  case antState_Error: return "Error";
264  default: return "Invalid State!";
265  }
266 }
267 void parseTerminalMenuAPI(struct antennaStruct* terminalStructPtrIn, struct uiStruct* uiStructPtrIn)
268 {
269  //(Status) Terminal; to see cM_Terminal screen
270  OPENIF("Terminal", cM_Terminal)
271  //(Status) Terminal:State;
272  //(Command) Terminal:State:antState_init;
273  //(Command) Terminal:TargetSatellite:UpLinkFreq_kHz:2100000.0;
274  CLOSEIF("Terminal", cM_Terminal)
275 }
276 void writeTerminalMenuScreenConsole(struct antennaStruct* terminalStructPtrIn, struct uiStruct* uiStructPtrIn)
277 {
278  OPENSWITCH(uiStructPtrIn)
279  case 0:
280  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "Terminal", terminalSlashes() END_MENU_LN;
281  case 1:
282  PRINT_MENU_LN "\nCurrent State: %s", currentStateString(terminalStructPtrIn) END_MENU_LN;
283  case 2:
284  PRINT_MENU_LN "\n%sGeo-Location", cursorString(uiStructPtrIn->cursorIndex == 0) END_MENU_LN;
285  case 3:
286  PRINT_MENU_LN "\n%sAttitude and Position", cursorString(uiStructPtrIn->cursorIndex == 1) END_MENU_LN;
287  case 4:
288  PRINT_MENU_LN "\n%sSatCom System", cursorString(uiStructPtrIn->cursorIndex == 2) END_MENU_LN;
289  default:
290  CLOSESWITCH(uiStructPtrIn)
291 }
292 void writeTerminalMenuScreenLCDSmall(struct antennaStruct* terminalStructPtrIn, struct uiStruct* uiStructPtrIn)
293 {
294  OPENSWITCH(uiStructPtrIn)
295  case 0:
296  PRINT_MENU_LN "\n%s - %s Menu ", xstr(Mn), "Terminal" END_MENU_LN;
297  case 1:
298  PRINT_MENU_LN "\nCurrent State: %s", currentStateString(terminalStructPtrIn) END_MENU_LN;
299  case 2:
300  PRINT_MENU_LN "\n%sGeo-Location", cursorString(uiStructPtrIn->cursorIndex == 0) END_MENU_LN;
301  case 3:
302  PRINT_MENU_LN "\n%sAttitude and Position", cursorString(uiStructPtrIn->cursorIndex == 1) END_MENU_LN;
303  default:
304  CLOSESWITCH(uiStructPtrIn)
305 }
306 void writeTerminalMenuScreenLCDBig(struct antennaStruct* terminalStructPtrIn, struct uiStruct* uiStructPtrIn)
307 {
308  OPENSWITCH(uiStructPtrIn)
309  case 0:
310  PRINT_MENU_LN "\n%s - %s Menu ", xstr(Mn), "Terminal" END_MENU_LN;
311  case 1:
312  PRINT_MENU_LN "\nCurrent State: %s", currentStateString(terminalStructPtrIn) END_MENU_LN;
313  default:
314  CLOSESWITCH(uiStructPtrIn)
315 }
316 void writeTerminalMenuScreen(struct antennaStruct* terminalStructPtrIn, struct uiStruct* uiStructPtrIn)
317 {
318  switch (uiStructPtrIn->viewFormatIndex)
319  {
320  case cV_Console: writeTerminalMenuScreenConsole(terminalStructPtrIn, uiStructPtrIn); break;
321  case cv_LCD4_40: writeTerminalMenuScreenLCDBig(terminalStructPtrIn, uiStructPtrIn); break;
322  case cv_LCD2_40: writeTerminalMenuScreenLCDSmall(terminalStructPtrIn, uiStructPtrIn); break;
323  }
324 }
325 
326 // TxRx Module
327 void parseTxRxMenuAPI(struct txRxStruct* txRxStructPtrIn, struct uiStruct* uiStructPtrIn)
328 {
329  //(Status) TxRx; to see cM_TxRx screen
330  OPENIF("TxRx", cM_devTXRX)
331  //(Status) TxRx:;
332  //(Command) TxRx::;
333  //(Command) TxRx:::;
334  CLOSEIF("TxRx", cM_devTXRX)
335 }
336 void writeTxRxMenuScreenConsole(struct txRxStruct* txRxStructPtrIn, struct uiStruct* uiStructPtrIn)
337 {
338  OPENSWITCH(uiStructPtrIn)
339  case 0:
340  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "TxRx", terminalSlashes() END_MENU_LN;
341  case 1:
342  PRINT_MENU_LN "\nCurrent Attenuation Tx1: %6.2f dB", txRxStructPtrIn->AttenuatorValues[0] END_MENU_LN;
343  case 3:
344  PRINT_MENU_LN "\nCurrent Attenuation Rx: %6.2f dB", txRxStructPtrIn->AttenuatorValues[1] END_MENU_LN;
345  case 2:
346  PRINT_MENU_LN "\nCurrent Attenuation Tx2: %6.2f dB", txRxStructPtrIn->AttenuatorValues[2] END_MENU_LN;
347  case 4:
348  PRINT_MENU_LN "\n//////////////////////////////////" END_MENU_LN;
349  case 5:
350  PRINT_MENU_LN "\nType \"T1:22.75;\" set Tx1 to 22.75" END_MENU_LN;
351  case 6:
352  PRINT_MENU_LN "\nType \"R:21.00;\" set Rx to 21.00" END_MENU_LN;
353  case 7:
354  PRINT_MENU_LN "\nType \"T2:19.25;\" set Tx2 to 19.25" END_MENU_LN;
355  default:
356  CLOSESWITCH(uiStructPtrIn)
357 }
358 void writeTxRxMenuScreenLCDBig(struct txRxStruct* txRxStructPtrIn, struct uiStruct* uiStructPtrIn)
359 {
360  OPENSWITCH(uiStructPtrIn)
361  case 0:
362  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "TxRx", terminalSlashes() END_MENU_LN;
363  case 1:
364  PRINT_MENU_LN "\nCurrent Attenuation Tx1: %6.2f dB", txRxStructPtrIn->AttenuatorValues[0] END_MENU_LN;
365  case 3:
366  PRINT_MENU_LN "\nCurrent Attenuation Rx: %6.2f dB", txRxStructPtrIn->AttenuatorValues[1] END_MENU_LN;
367  case 2:
368  PRINT_MENU_LN "\nCurrent Attenuation Tx2: %6.2f dB", txRxStructPtrIn->AttenuatorValues[2] END_MENU_LN;
369  default:
370  CLOSESWITCH(uiStructPtrIn)
371 }
372 void writeTxRxMenuScreenLCDSmall(struct txRxStruct* txRxStructPtrIn, struct uiStruct* uiStructPtrIn)
373 {
374  OPENSWITCH(uiStructPtrIn)
375  case 1:
376  PRINT_MENU_LN "\nCurrent Attenuation Tx1: %6.2f dB", txRxStructPtrIn->AttenuatorValues[0] END_MENU_LN;
377  //case 3:
378  // PRINT_MENU_LN "\nCurrent Attenuation Rx: %6.2f dB", txRxStructPtrIn->AttenuatorValues[1] END_MENU_LN;
379  case 2:
380  PRINT_MENU_LN "\nCurrent Attenuation Tx2: %6.2f dB", txRxStructPtrIn->AttenuatorValues[2] END_MENU_LN;
381  default:
382  CLOSESWITCH(uiStructPtrIn)
383 }
384 void writeTxRxMenuScreen(struct txRxStruct* txRxStructPtrIn, struct uiStruct* uiStructPtrIn)
385 {
386  switch (uiStructPtrIn->viewFormatIndex)
387  {
388  case cV_Console: writeTxRxMenuScreenConsole(txRxStructPtrIn, uiStructPtrIn); break;
389  case cv_LCD4_40: writeTxRxMenuScreenLCDBig(txRxStructPtrIn, uiStructPtrIn); break;
390  case cv_LCD2_40: writeTxRxMenuScreenLCDSmall(txRxStructPtrIn, uiStructPtrIn); break;
391  }
392 }
393 
394 // APT Module
395 void parseAPTMenuAPI(struct aptStruct* aptStructPtrIn, struct uiStruct* uiStructPtrIn)
396 {
397  //(Status) APT; to see cM_TxRx screen
398  OPENIF("APT", cM_devAPT)
399  //(Status) APT:;
400  //(Command) APT::;
401  //(Command) APT:::;
402  CLOSEIF("APT", cM_devAPT)
403 }
404 void writeAPTMenuScreenConsole(struct aptStruct* aptStructPtrIn, struct uiStruct* uiStructPtrIn)
405 {
406  OPENSWITCH(uiStructPtrIn)
407  case 0:
408  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "APT", terminalSlashes() END_MENU_LN;
409  case 1:
410  PRINT_MENU_LN "\nLatitude: \t\t%8.4f", aptStructPtrIn->GPS.data.lattitude END_MENU_LN;
411  case 2:
412  PRINT_MENU_LN "\nLongitude: \t\t%8.4f", aptStructPtrIn->GPS.data.longitude END_MENU_LN;
413  case 3:
414  PRINT_MENU_LN "\nAltitude: \t\t%8.0f", aptStructPtrIn->GPS.data.altitude END_MENU_LN;
415  case 4:
416  PRINT_MENU_LN "\nDate/Time (UTC): %2i/%2i/%4i %6.0f", aptStructPtrIn->GPS.data.month, aptStructPtrIn->GPS.data.day, aptStructPtrIn->GPS.data.year, aptStructPtrIn->GPS.data.utctime END_MENU_LN;
417  case 5:
418  PRINT_MENU_LN "\nMagnetic Declination: \t%6.2f", 0.0 END_MENU_LN;
419  case 6:
420  PRINT_MENU_LN "\nAzimuth Heading: \t%6.2f", aptStructPtrIn->eCompass.data.yaw END_MENU_LN;
421  case 7:
422  PRINT_MENU_LN "\nElevation Pitch: \t%6.2f", aptStructPtrIn->eCompass.data.pitch END_MENU_LN;
423  case 8:
424  PRINT_MENU_LN "\nAPT Roll: \t\t%6.2f", aptStructPtrIn->eCompass.data.roll END_MENU_LN;
425  default:
426  CLOSESWITCH(uiStructPtrIn)
427 }
428 void writeAPTMenuScreenLCDBig(struct aptStruct* aptStructPtrIn, struct uiStruct* uiStructPtrIn)
429 {
430  OPENSWITCH(uiStructPtrIn)
431  case 0:
432  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "APT", terminalSlashes() END_MENU_LN;
433  case 1:
434  PRINT_MENU_LN "\nLatitude: \t\t%8.4f", aptStructPtrIn->GPS.data.lattitude END_MENU_LN;
435  case 2:
436  PRINT_MENU_LN "\nLongitude: \t\t%8.4f", aptStructPtrIn->GPS.data.longitude END_MENU_LN;
437  case 3:
438  PRINT_MENU_LN "\nAltitude: \t\t%8.0f", aptStructPtrIn->GPS.data.altitude END_MENU_LN;
439  default:
440  CLOSESWITCH(uiStructPtrIn)
441 }
442 void writeAPTMenuScreenLCDSmall(struct aptStruct* aptStructPtrIn, struct uiStruct* uiStructPtrIn)
443 {
444  OPENSWITCH(uiStructPtrIn)
445  case 0:
446  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "APT", terminalSlashes() END_MENU_LN;
447  case 1:
448  PRINT_MENU_LN "\nLatitude: \t\t%8.4f", aptStructPtrIn->GPS.data.lattitude END_MENU_LN;
449  default:
450  CLOSESWITCH(uiStructPtrIn)
451 }
452 void writeAPTMenuScreen(struct aptStruct* aptStructPtrIn, struct uiStruct* uiStructPtrIn)
453 {
454  switch (uiStructPtrIn->viewFormatIndex)
455  {
456  case cV_Console: writeAPTMenuScreenConsole(aptStructPtrIn, uiStructPtrIn); break;
457  case cv_LCD4_40: writeAPTMenuScreenLCDBig(aptStructPtrIn, uiStructPtrIn); break;
458  case cv_LCD2_40: writeAPTMenuScreenLCDSmall(aptStructPtrIn, uiStructPtrIn); break;
459  }
460 
461 }
462 
463 // TPM Module
464 void parseTPMMenuAPI(struct tpmStruct* tpmStructPtrIn, struct uiStruct* uiStructPtrIn)
465 {
466  //(Status) APT; to see cM_TxRx screen
467  OPENIF("TPM", cM_devTPM)
468  //(Status) TPM:;
469  //(Command) TPM::;
470  //(Command) TPM:::;
471  CLOSEIF("TPM", cM_devTPM)
472 }
473 void writeTPMMenuScreenConsole(struct tpmStruct* tpmStructPtrIn, struct uiStruct* uiStructPtrIn)
474 {
475  OPENSWITCH(uiStructPtrIn)
476  case 0:
477  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "TPM", terminalSlashes() END_MENU_LN;
478  case 1:
479  PRINT_MENU_LN "\nDesired Center (MHz): %9.4f", tpmStructPtrIn->freqConverter.data.DesiredCenterFreqMHz END_MENU_LN;
480  case 2:
481  PRINT_MENU_LN "\nRequired LO (MHz): %9.4f", tpmStructPtrIn->freqConverter.data.RequiredLOFreqMHz END_MENU_LN;
482  case 3:
483  PRINT_MENU_LN "\nLocked on LO (0/1): %1d", tpmStructPtrIn->freqConverter.data.LockedOnRequiredLOFreq END_MENU_LN;
484  case 4:
485  PRINT_MENU_LN "\nPower Filter BW (MHz): %3.0f", tpmStructPtrIn->powerMeter.data.BandwidthMHz END_MENU_LN;
486  case 5:
487  PRINT_MENU_LN "\nPower In-Band (dBm): %6.2f", tpmStructPtrIn->powerMeter.data.PowerMeasuredinBanddB END_MENU_LN;
488  case 6:
489  PRINT_MENU_LN "\nADC Reading Good (0/1): %1d", tpmStructPtrIn->powerMeter.data.value_good END_MENU_LN;
490  case 7:
491  PRINT_MENU_LN "\nADC Value : %4d", tpmStructPtrIn->powerMeter.data.current_value END_MENU_LN;
492  default:
493  CLOSESWITCH(uiStructPtrIn)
494 }
495 void writeTPMMenuScreenLCDBig(struct tpmStruct* tpmStructPtrIn, struct uiStruct* uiStructPtrIn)
496 {
497  OPENSWITCH(uiStructPtrIn)
498  case 0:
499  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "TPM", terminalSlashes() END_MENU_LN;
500  case 1:
501  PRINT_MENU_LN "\nDesired Center (MHz): %9.4f", tpmStructPtrIn->freqConverter.data.DesiredCenterFreqMHz END_MENU_LN;
502  case 2:
503  PRINT_MENU_LN "\nRequired LO (MHz): %9.4f", tpmStructPtrIn->freqConverter.data.RequiredLOFreqMHz END_MENU_LN;
504  case 3:
505  PRINT_MENU_LN "\nLocked on LO (0/1): %1d", tpmStructPtrIn->freqConverter.data.LockedOnRequiredLOFreq END_MENU_LN;
506  default:
507  CLOSESWITCH(uiStructPtrIn)
508 }
509 void writeTPMMenuScreenLCDSmall(struct tpmStruct* tpmStructPtrIn, struct uiStruct* uiStructPtrIn)
510 {
511  OPENSWITCH(uiStructPtrIn)
512  case 0:
513  PRINT_MENU_LN "\n%s %s - %s Menu %s", terminalSlashes(), xstr(Mn), "TPM", terminalSlashes() END_MENU_LN;
514  case 1:
515  PRINT_MENU_LN "\nDesired Center (MHz): %9.4f", tpmStructPtrIn->freqConverter.data.DesiredCenterFreqMHz END_MENU_LN;
516  default:
517  CLOSESWITCH(uiStructPtrIn)
518 }
519 void writeTPMMenuScreen(struct tpmStruct* tpmStructPtrIn, struct uiStruct* uiStructPtrIn)
520 {
521 
522  switch (uiStructPtrIn->viewFormatIndex)
523  {
524  case cV_Console: writeTPMMenuScreenConsole(tpmStructPtrIn, uiStructPtrIn); break;
525  case cv_LCD4_40: writeTPMMenuScreenLCDBig(tpmStructPtrIn, uiStructPtrIn); break;
526  case cv_LCD2_40: writeTPMMenuScreenLCDSmall(tpmStructPtrIn, uiStructPtrIn); break;
527  }
528 
529 }
parseTPMMenuAPI
void parseTPMMenuAPI(struct tpmStruct *tpmStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:464
LTC2360DataStruct::BandwidthMHz
float BandwidthMHz
Definition: LTC2360.h:35
gpsData::day
I_16 day
Definition: NEO_LEA_M8T.h:36
parseSatComACSMenuAPI
void parseSatComACSMenuAPI(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:141
writeAPTMenuScreenConsole
void writeAPTMenuScreenConsole(struct aptStruct *aptStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:404
txRxStruct::AttenuatorValues
float AttenuatorValues[MAX_NUM_ATTENUATORS]
Definition: TxRxmodule.h:40
writeTxRxMenuScreenLCDSmall
void writeTxRxMenuScreenLCDSmall(struct txRxStruct *txRxStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:372
goParsedAction
void goParsedAction(enum currentMenuAction theCurrentAction, struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:90
gpsData::year
I_16 year
Definition: NEO_LEA_M8T.h:36
writeSatComACSMenuScreenLCDBig
void writeSatComACSMenuScreenLCDBig(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:169
eCompDataStruct::roll
float roll
Definition: HMR3300.h:35
antState_Acquiring
@ antState_Acquiring
Definition: satComControl.h:87
Mn
#define Mn
Definition: Application_Solution.h:32
parseSatComACSDevicesMenuAPI
void parseSatComACSDevicesMenuAPI(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:202
writeSatComACSDevicesMenuScreenLCDBig
void writeSatComACSDevicesMenuScreenLCDBig(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:220
writeAPTMenuScreenLCDBig
void writeAPTMenuScreenLCDBig(struct aptStruct *aptStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:428
writeSatComACSDevicesMenuScreen
void writeSatComACSDevicesMenuScreen(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:244
writeTxRxMenuScreenLCDBig
void writeTxRxMenuScreenLCDBig(struct txRxStruct *txRxStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:358
parseTxRxMenuAPI
void parseTxRxMenuAPI(struct txRxStruct *txRxStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:327
ADRF6650DataStruct::LockedOnRequiredLOFreq
UI_8 LockedOnRequiredLOFreq
Definition: ADRF6650.h:38
antState_NotAcquired
@ antState_NotAcquired
Definition: satComControl.h:86
writeSatComACSDevicesMenuScreenLCDSmall
void writeSatComACSDevicesMenuScreenLCDSmall(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:234
parseUserLevel
void parseUserLevel(struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:73
writeTPMMenuScreenLCDBig
void writeTPMMenuScreenLCDBig(struct tpmStruct *tpmStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:495
antState_Error
@ antState_Error
Definition: satComControl.h:89
gpsData::utctime
float utctime
Definition: NEO_LEA_M8T.h:35
eCompDataStruct::pitch
float pitch
Definition: HMR3300.h:35
ui8FALSE
#define ui8FALSE
Definition: version_config.h:190
writeTerminalMenuScreen
void writeTerminalMenuScreen(struct antennaStruct *terminalStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:316
antennaStruct
Definition: satComControl.h:94
eCompDataStruct::yaw
float yaw
Definition: HMR3300.h:35
parseConsoleKeyPadAPI
void parseConsoleKeyPadAPI(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:103
writeTerminalMenuScreenConsole
void writeTerminalMenuScreenConsole(struct antennaStruct *terminalStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:276
gpsData::altitude
float altitude
Definition: NEO_LEA_M8T.h:35
writeSatComACSMenuScreen
void writeSatComACSMenuScreen(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:191
LCDapi.h
IMS: ccNOos, Declarations for straight C and C++
writeTxRxMenuScreenConsole
void writeTxRxMenuScreenConsole(struct txRxStruct *txRxStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:336
terminalPromptString
const char * terminalPromptString(int userLevelIndex)
Definition: MenuAPI.c:61
eCompStruct::data
struct eCompDataStruct data
Definition: APTmodule.h:49
currentStateString
const char * currentStateString(struct antennaStruct *terminalStructPtrIn)
Definition: MenuAPI.c:255
writeAPTMenuScreenLCDSmall
void writeAPTMenuScreenLCDSmall(struct aptStruct *aptStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:442
ADRF6650DataStruct::DesiredCenterFreqMHz
float DesiredCenterFreqMHz
Definition: ADRF6650.h:36
ui8TRUE
#define ui8TRUE
Definition: version_config.h:191
writeSatComACSDevicesMenuScreenConsole
void writeSatComACSDevicesMenuScreenConsole(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:206
writeTerminalMenuScreenLCDSmall
void writeTerminalMenuScreenLCDSmall(struct antennaStruct *terminalStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:292
aptStruct::GPS
struct gpsStruct GPS
Definition: APTmodule.h:58
txRxStruct
Definition: TxRxmodule.h:38
gpsStruct::data
struct gpsData data
Definition: APTmodule.h:39
writeSatComACSMenuScreenLCDSmall
void writeSatComACSMenuScreenLCDSmall(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:181
LTC2360DataStruct::value_good
UI_8 value_good
Definition: LTC2360.h:38
parseTerminalMenuAPI
void parseTerminalMenuAPI(struct antennaStruct *terminalStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:267
writeSatComACSMenuScreenConsole
void writeSatComACSMenuScreenConsole(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:155
aptStruct
Definition: APTmodule.h:57
ADRF6650DataStruct::RequiredLOFreqMHz
float RequiredLOFreqMHz
Definition: ADRF6650.h:37
LTC2360DataStruct::current_value
I_16 current_value
Definition: LTC2360.h:37
tpmStruct
Definition: TPMmodule.h:56
tpmStruct::freqConverter
struct freqConvStruct freqConverter
Definition: TPMmodule.h:57
antennaStruct::State
enum antennaState State
Definition: satComControl.h:95
LTC2360DataStruct::PowerMeasuredinBanddB
float PowerMeasuredinBanddB
Definition: LTC2360.h:36
antState_Acquired
@ antState_Acquired
Definition: satComControl.h:88
gpsData::longitude
float longitude
Definition: NEO_LEA_M8T.h:35
writeTPMMenuScreenConsole
void writeTPMMenuScreenConsole(struct tpmStruct *tpmStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:473
tpmStruct::powerMeter
struct powerMeterStruct powerMeter
Definition: TPMmodule.h:58
gpsData::month
I_16 month
Definition: NEO_LEA_M8T.h:36
antState_init
@ antState_init
Definition: satComControl.h:85
powerMeterStruct::data
struct LTC2360DataStruct data
Definition: TPMmodule.h:48
writeTxRxMenuScreen
void writeTxRxMenuScreen(struct txRxStruct *txRxStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:384
xstr
#define xstr(s)
Definition: version_config.h:50
writeAPTMenuScreen
void writeAPTMenuScreen(struct aptStruct *aptStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:452
gpsData::lattitude
float lattitude
Definition: NEO_LEA_M8T.h:35
writeTerminalMenuScreenLCDBig
void writeTerminalMenuScreenLCDBig(struct antennaStruct *terminalStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:306
parseAPTMenuAPI
void parseAPTMenuAPI(struct aptStruct *aptStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:395
writeTPMMenuScreen
void writeTPMMenuScreen(struct tpmStruct *tpmStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:519
freqConvStruct::data
struct ADRF6650DataStruct data
Definition: TPMmodule.h:38
parseGroupSatComACS
void parseGroupSatComACS(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:122
writeUIHelpString
void writeUIHelpString(struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:29
writeTPMMenuScreenLCDSmall
void writeTPMMenuScreenLCDSmall(struct tpmStruct *tpmStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:509
aptStruct::eCompass
struct eCompStruct eCompass
Definition: APTmodule.h:59
parseLCDKeyPadAPI
void parseLCDKeyPadAPI(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: LCDapi.c:29