ccNOos  v0.0.0
Build Portable Microcontroller Applications!
Functions
Application_Solution.c File Reference

IMS: ccNOos, Implementation for straight C More...

#include "Application_Solution.h"
Include dependency graph for Application_Solution.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

MODdeclareCREATE() Mn (MODdeclareCREATEINS)
 
 MODdeclareSETUP (Mn)
 
void ErrorInitState (MODdeclarePTRIN(Mn))
 
void NotAcquiredState (MODdeclarePTRIN(Mn))
 
void AcquiringState (MODdeclarePTRIN(Mn))
 
void AcquiredState (MODdeclarePTRIN(Mn))
 
void UpdateTerminalState (MODdeclarePTRIN(Mn))
 
void tryReadLCDKeyPad (MODdeclarePTRIN(Mn))
 
void tryWriteLCDKeyPad (MODdeclarePTRIN(Mn))
 
void tryReadConsoleMenu (MODdeclarePTRIN(Mn))
 
void tryWriteConsoleMenu (MODdeclarePTRIN(Mn))
 
 MODdeclareLOOP (Mn)
 
 MODdeclareSYSTICK (Mn)
 
 MODdeclarePRINTm (Mn)
 
 MODdeclarePARSEi (Mn)
 

Detailed Description

IMS: ccNOos, Implementation for straight C

Copyright 2021 InMechaSol, Inc

Licensed under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Notes: (.c includes .h) - for straight C or (.cpp includes .c which includes .h) - for C++ wrapped straight C Always compiled to a single compilation unit, either C or CPP, not both

Definition in file Application_Solution.c.

Function Documentation

◆ AcquiredState()

void AcquiredState ( MODdeclarePTRIN(Mn )

Definition at line 269 of file Application_Solution.c.

270 {
271  // nothing at all is wrong,
272  // just monitoring and responding to commands
273 
274  // only transition on error or commands to reacquire
275 
276 }

◆ AcquiringState()

void AcquiringState ( MODdeclarePTRIN(Mn )

Definition at line 261 of file Application_Solution.c.

262 {
263  // nothing at all is wrong,
264  // acquisition is in progress
265 
266  // only transition on error or acquisition
267 
268 }

◆ ErrorInitState()

void ErrorInitState ( MODdeclarePTRIN(Mn )

Definition at line 245 of file Application_Solution.c.

246 {
247  // if anything at all is wrong, for whatever reason
248  // it must be resolved cyclically here
249 
250  // only if everything is clear should we transition state
251 
252 }

◆ Mn()

Definition at line 32 of file Application_Solution.c.

33 {
34  MODdeclareSTRUCT(Mn) outStruct;
35  outStruct.compMod = CreateComputeModuleStruct();
36  outStruct.Terminal = createantennaStruct();
37  outStruct.APT = createaptStruct();
38  outStruct.TPM = createtpmStruct();
39  outStruct.TxRx = createtxRxStruct();
40  outStruct.WMM = createwmmStruct();
41  outStruct.ConsoleMenu = createuiStruct();
42  outStruct.LCDKeyPad = createuiStruct();
43  return outStruct;
44 }

◆ MODdeclareLOOP()

MODdeclareLOOP ( Mn  )

Definition at line 75 of file Application_Solution.c.

76 {
78 
79  // read devices
84 
85  // process satcomACS
87  switch (MODdataPTR(Mn)->Terminal.State)
88  {
93  default: ErrorInitState(MODdataPTR(Mn)); break;
94  }
95 
96  // write devices
101 
102  return RETURN_SUCCESS;
103 }

◆ MODdeclarePARSEi()

MODdeclarePARSEi ( Mn  )

Definition at line 161 of file Application_Solution.c.

162 {
164  if (uiStructPtrIn != nullptr)
165  {
166  GetMenuChars(uiStructPtrIn);
167  if (uiStructPtrIn->devptr->newDataReadIn)
168  {
169 /* switch ((enum currentMenuNode)uiStructPtrIn->currentMenuIndex)
170  {
171  case cM_MainMenu: */
172  parseSatComACSMenuAPI(MODdataPTR(Mn), uiStructPtrIn);
173 /* break;
174  case cM_Devices:
175  parseSatComACSDevicesMenuAPI(MODdataPTR(Mn), uiStructPtrIn);
176  break;
177  case cM_Terminal:
178  parseTerminalMenuAPI(&MODdataPTR(Mn)->Terminal, uiStructPtrIn);
179  break;
180  case cM_devAPT:
181  parseAPTMenuAPI(&MODdataPTR(Mn)->APT, uiStructPtrIn);
182  break;
183  } */
184  uiStructPtrIn->devptr->triggerWriteOperation = ui8TRUE;
185  uiStructPtrIn->devptr->newDataReadIn = ui8FALSE;
186  }
187 
188  }
189 }

◆ MODdeclarePRINTm()

MODdeclarePRINTm ( Mn  )

Definition at line 109 of file Application_Solution.c.

110 {
112  if (uiStructPtrIn != nullptr)
113  {
114  if (uiStructPtrIn->devptr->triggerWriteOperation)
115  {
116  uiStructPtrIn->lines2print = 1;
117  uiStructPtrIn->linesprinted = 0;
118  uiStructPtrIn->clearScreen = ui8TRUE;
119 
120  switch ((enum currentMenuNode)uiStructPtrIn->currentMenuIndex)
121  {
122  case cM_RootNode:
123  ;//writeRootNodeMenuScreen(&MODdataPTR(Mn), uiStructPtrIn);
124  break;
125  case cM_MainMenu:
126  writeSatComACSMenuScreen(MODdataPTR(Mn), uiStructPtrIn);
127  break;
128  case cM_Devices:
130  break;
131  case cM_Terminal:
132  writeTerminalMenuScreen(&MODdataPTR(Mn)->Terminal, uiStructPtrIn);
133  break;
134  case cM_ExecutionSystem:
135  //writeExeSysMenuScreen(&MODdataPTR(Mn), uiStructPtrIn);
136  break;
137  case cM_devAPT:
138  writeAPTMenuScreen(&MODdataPTR(Mn)->APT,uiStructPtrIn);
139  break;
140  case cM_devTXRX:
141  writeTxRxMenuScreen(&MODdataPTR(Mn)->TxRx, uiStructPtrIn);
142  break;
143  case cM_devTPM:
144  writeTPMMenuScreen(&MODdataPTR(Mn)->TPM, uiStructPtrIn);
145  break;
146  }
147  uiStructPtrIn->lines2print = 1;
148  uiStructPtrIn->linesprinted = 0;
149  writeUIHelpString(uiStructPtrIn);
150  //uiStructPtrIn->showHelp = ui8TRUE;
151  uiStructPtrIn->showPrompt = ui8TRUE;
152  uiStructPtrIn->devptr->outbuff.charbuff[0] = 0x00;
153  WriteMenuLine(uiStructPtrIn);
154 
155  uiStructPtrIn->devptr->triggerWriteOperation = ui8FALSE;
156  }
157  }
158 }

◆ MODdeclareSETUP()

MODdeclareSETUP ( Mn  )

Definition at line 47 of file Application_Solution.c.

48 {
50 
51  // Setup is running in the loop area to handle exceptions...
53  {
54  CLEAR_MODULE_ERRORS(Mn); // do nothing, clear flags
55  MODdataPTR(Mn)->Terminal.State = antState_Error;
56  }
57  // Setup is running in the setup area following power on
58  else
59  {
61  }
62  return RETURN_SUCCESS;
63 }

◆ MODdeclareSYSTICK()

MODdeclareSYSTICK ( Mn  )

Definition at line 105 of file Application_Solution.c.

105 { ; } // do nothing in the systick area

◆ NotAcquiredState()

void NotAcquiredState ( MODdeclarePTRIN(Mn )

Definition at line 253 of file Application_Solution.c.

254 {
255  // nothing at all is wrong, completely ready to acquire
256  // wating for command to do so
257 
258  // only transition on error or command to acquire
259 
260 }

◆ tryReadConsoleMenu()

void tryReadConsoleMenu ( MODdeclarePTRIN(Mn )

Definition at line 286 of file Application_Solution.c.

287 {
288  MODparseINPUT(Mn)(&MODdataPTR(Mn)->compMod, &MODdataPTR(Mn)->ConsoleMenu);
289 }

◆ tryReadLCDKeyPad()

void tryReadLCDKeyPad ( MODdeclarePTRIN(Mn )

Definition at line 278 of file Application_Solution.c.

279 {
280  MODparseINPUT(Mn)(&MODdataPTR(Mn)->compMod, &MODdataPTR(Mn)->LCDKeyPad);
281 }

◆ tryWriteConsoleMenu()

void tryWriteConsoleMenu ( MODdeclarePTRIN(Mn )

Definition at line 290 of file Application_Solution.c.

291 {
292  MODprintMENU(Mn)(&MODdataPTR(Mn)->compMod, &MODdataPTR(Mn)->ConsoleMenu);
293 }

◆ tryWriteLCDKeyPad()

void tryWriteLCDKeyPad ( MODdeclarePTRIN(Mn )

Definition at line 282 of file Application_Solution.c.

283 {
284  MODprintMENU(Mn)(&MODdataPTR(Mn)->compMod, &MODdataPTR(Mn)->LCDKeyPad);
285 }

◆ UpdateTerminalState()

void UpdateTerminalState ( MODdeclarePTRIN(Mn )

Definition at line 194 of file Application_Solution.c.

195 {
196  // check for new data from devices
197  if (MODdataPTR(Mn)->APT.GPS.newGPSData)
198  {
199  // latch into terminal object
200  MODdataPTR(Mn)->Terminal.GeoLocation.latitude = MODdataPTR(Mn)->APT.GPS.data.lattitude;
201  MODdataPTR(Mn)->Terminal.GeoLocation.longitude = MODdataPTR(Mn)->APT.GPS.data.longitude;
202  MODdataPTR(Mn)->Terminal.GeoLocation.altitude = MODdataPTR(Mn)->APT.GPS.data.altitude;
203  // clear flag
204  MODdataPTR(Mn)->APT.GPS.newGPSData = ui8FALSE;
205  // set connected flag
206  MODdataPTR(Mn)->APT.GPS.Connected = ui8TRUE;
207 
208  }
209  // check for new data from eCompass
210  if ((MODdataPTR(Mn)->APT.eCompass.neweCompassData))
211  {
212  // latch into terminal object
213  MODdataPTR(Mn)->Terminal.ReflectorAttitude.roll = MODdataPTR(Mn)->APT.eCompass.data.roll;
214  MODdataPTR(Mn)->Terminal.ReflectorAttitude.pitch = MODdataPTR(Mn)->APT.eCompass.data.pitch;
215  MODdataPTR(Mn)->Terminal.ReflectorAttitude.yaw = MODdataPTR(Mn)->APT.eCompass.data.yaw;
216  // clear flag
217  MODdataPTR(Mn)->APT.eCompass.neweCompassData = ui8FALSE;
218  // set connected flag
219  MODdataPTR(Mn)->APT.GPS.Connected = ui8TRUE;
220  }
221  // check for new data from down converter
222  if (MODdataPTR(Mn)->TPM.freqConverter.newFreqConvData)
223  {
224  if (MODdataPTR(Mn)->TPM.freqConverter.data.LockedOnRequiredLOFreq)
225  {
226  // latch into terminal object
227  }
228  // clear flag
229  MODdataPTR(Mn)->TPM.freqConverter.newFreqConvData = ui8FALSE;
230  }
231  // check for new data from power meter
232  if (MODdataPTR(Mn)->TPM.powerMeter.newPowerMeterValue)
233  {
234  if (MODdataPTR(Mn)->TPM.freqConverter.data.LockedOnRequiredLOFreq)
235  {
236  // latch into terminal object
237  MODdataPTR(Mn)->Terminal.CommSystem.RxSignalStrengthMetric = MODdataPTR(Mn)->TPM.powerMeter.data.PowerMeasuredinBanddB;
238  }
239  // clear flag
240  MODdataPTR(Mn)->TPM.powerMeter.newPowerMeterValue = ui8FALSE;
241  }
242 }
createtpmStruct
struct tpmStruct createtpmStruct()
Definition: TPMmodule.c:47
GetMenuChars
void GetMenuChars(struct uiStruct *uiStructPtrin)
Definition: Application_Platform_Main.c:111
tryWriteTPMData
void tryWriteTPMData(struct tpmStruct *tpmStructPtrIn)
Definition: TPMmodule.c:61
parseSatComACSMenuAPI
void parseSatComACSMenuAPI(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:141
Mn
MODdeclareCREATE() Mn(MODdeclareCREATEINS)
Definition: Application_Solution.c:29
CLEAR_MODULE_ERRORS
#define CLEAR_MODULE_ERRORS(mNAME)
Definition: version_config.h:339
tryReadConsoleMenu
void tryReadConsoleMenu(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:286
antState_Acquiring
@ antState_Acquiring
Definition: satComControl.h:87
UpdateTerminalState
void UpdateTerminalState(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:194
MODprintMENU
#define MODprintMENU(mNAME)
Definition: version_config.h:260
writeSatComACSDevicesMenuScreen
void writeSatComACSDevicesMenuScreen(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:244
antState_NotAcquired
@ antState_NotAcquired
Definition: satComControl.h:86
tryWriteConsoleMenu
void tryWriteConsoleMenu(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:290
MODDATAPTR_RETURN
#define MODDATAPTR_RETURN(mNAME)
Definition: version_config.h:323
createantennaStruct
struct antennaStruct createantennaStruct()
Definition: satComControl.c:70
MODDATAPTR_ERROR_RETURN
#define MODDATAPTR_ERROR_RETURN(mNAME)
Definition: version_config.h:331
antState_Error
@ antState_Error
Definition: satComControl.h:89
ui8FALSE
#define ui8FALSE
Definition: version_config.h:190
writeTerminalMenuScreen
void writeTerminalMenuScreen(struct antennaStruct *terminalStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:316
tryReadTPMData
void tryReadTPMData(struct tpmStruct *tpmStructPtrIn)
Definition: TPMmodule.c:55
NotAcquiredState
void NotAcquiredState(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:253
writeSatComACSMenuScreen
void writeSatComACSMenuScreen(struct SatComACSStruct *satcomacsStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:191
IF_MODULE_ERROR
#define IF_MODULE_ERROR(mNAME)
Definition: version_config.h:335
createtxRxStruct
struct txRxStruct createtxRxStruct()
Definition: TxRxmodule.c:30
WriteMenuLine
void WriteMenuLine(struct uiStruct *uiStructPtrin)
Definition: Application_Platform_Main.c:144
MODparseINPUT
#define MODparseINPUT(mNAME)
Definition: version_config.h:264
tryWriteLCDKeyPad
void tryWriteLCDKeyPad(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:282
ui8TRUE
#define ui8TRUE
Definition: version_config.h:191
writeAttenuatorValues
void writeAttenuatorValues(struct txRxStruct *txRxStructPtrIn)
Definition: Application_Platform_Main.c:72
tryReadLCDKeyPad
void tryReadLCDKeyPad(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:278
tryReadAPTData
void tryReadAPTData(struct aptStruct *aptStructPtrIn)
Definition: APTmodule.c:69
MODdeclareSTRUCT
#define MODdeclareSTRUCT(mNAME)
Definition: version_config.h:277
AcquiredState
void AcquiredState(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:269
MODdataPTR
#define MODdataPTR(mNAME)
Definition: version_config.h:244
createaptStruct
struct aptStruct createaptStruct()
Definition: APTmodule.c:49
ErrorInitState
void ErrorInitState(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:245
antState_Acquired
@ antState_Acquired
Definition: satComControl.h:88
linkAPIioDevices
void linkAPIioDevices(struct SatComACSStruct *satcomacsStructPtrIn)
Definition: Application_Platform_Main.c:73
writeTxRxMenuScreen
void writeTxRxMenuScreen(struct txRxStruct *txRxStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:384
writeAPTMenuScreen
void writeAPTMenuScreen(struct aptStruct *aptStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:452
AcquiringState
void AcquiringState(MODdeclarePTRIN(Mn))
Definition: Application_Solution.c:261
writeTPMMenuScreen
void writeTPMMenuScreen(struct tpmStruct *tpmStructPtrIn, struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:519
CreateComputeModuleStruct
struct computeModuleStruct CreateComputeModuleStruct()
Definition: compute_module.c:30
RETURN_SUCCESS
#define RETURN_SUCCESS
Function Return Value for Success.
Definition: version_config.h:87
writeUIHelpString
void writeUIHelpString(struct uiStruct *uiStructPtrIn)
Definition: MenuAPI.c:29
createwmmStruct
struct wmmStruct createwmmStruct()
Definition: APTmodule.c:56